Wallogit.com
2017 © Pedro Peláez
一个简单的分析WEB客户端信息的类, (*1)
简单的使用方法, (*2)
使用composer安装 composer require pizepei/terminal-info
* redis使用缓存结果避免重复获取ip和浏览器信息
terminalInfo::$redis= $Redis; #$Redis为Redis实例 非必须如果不设置属性默认中缓存当前请求生命周期内的ip与浏览器信息
terminalInfo::$period = 24; #redis缓存有效期单位小时 默认24小时
terminalInfo::$USER_AGENT; #非必须如果不设置此属性 默认获取当前请求的$_SERVER['HTTP_USER_AGENT']
terminalInfo::$LANGUAGE; #语音获取,非必须如果不设置此属性 默认获取当前请求的$_SERVER['HTTP_ACCEPT_LANGUAGE']
terminalInfo::getInfo(true); # 当参数为 true 时获取全文字信息方便展示 false 时获取的是int数值代替的内容方便存储数据库
terminalInfo::delCache([all]) # 清空 当前缓存 all 全部 ip ip缓存 agent AGENT缓存
* 返回信息如下
{
"Ipanel": {
"name": "微信(MicroMessenger)", # 浏览器名称
"versions": "7.0.6.1460" # 浏览器内核版本(客户端是微信时versions为微信版本号)
},
"language": "简体中文", # 浏览器系统语言
"OS": Android, # 客户端系统
"Build": [ # 移动设备的系统信息如系统、设备型号 IOS设备时会获取到IOS版本号
"Android 9",
"ONEPLUS A5010"
],
"NetworkType": "WIFI", # 通过浏览器信息获取到的网络信息
"IpInfo": { # IP详细信息 不同的模式下的信息有一些区别
"province": "广东省",
"city": "深圳市",
"isp": "电信",
"NetworkType": "WiFi",
"address": "CN|广东|深圳|None|CHINANET|0|0",
"street_number": "",
"human": "no", # 是否是人类 no不是 yes是
"point": {
"x": "114.02597366",
"y": "22.54605355"
}
},
"IP": "121.34.151.140", # 客户端IP
}
* 单独获取浏览器信息
terminalInfo::agentInfo(); # 单独获取,不支持获取全文字信息
* 单独获取IP详细
terminalInfo::getIpInfo([$IP]); # 如果传入ip就获取此IP信息否则获取当前请求IP的信息(会自动根据参数缓存结果)
* 获取当前请求IP
terminalInfo::get_ip()