php如何获取访问者地理位置,PHP获取访客IP和地理位置等信息的类
这是一个能够获取到用户访问信息的PHP类,包括:ip地址、地理信息、操作系统、语言、浏览器和isp等等。获取地理位置和ISP信息是请求的Baidu隐藏接口。
代码如下:
1.[代码][PHP]代码
/**
* 获取访客信息的类:语言、浏览器、操作系统、IP、地理位置、ISP。
* 日期:2011-09-13
* 作者:www.itwhy.org
* 使用:
* $obj = new class_guest_info;
* $obj->GetLang(); //获取访客语言:简体中文、繁體中文、English。
* $obj->GetBrowser(); //获取访客浏览器:MSIE、Firefox、Chrome、Safari、Opera、Other。
* $obj->GetOS(); //获取访客操作系统:Windows、MAC、Linux、Unix、BSD、Other。
* $obj->GetIP(); //获取访客IP地址。
* $obj->GetAdd(); //获取访客地理位置,使用 Baidu 隐藏接口。
* $obj->GetIsp(); //获取访客ISP,使用 Baidu 隐藏接口。
*/
class class_guest_info{
function GetLang() {
$Lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4);
//使用substr()截取字符串,从 0 位开始,截取4个字符
if (preg_match('/zh-c/i',$Lang)) {
//preg_match()正则表达式匹配函数
$Lang = '简体中文';
}
elseif (preg_match('/zh/i',$Lang)) {
$Lang = '繁體中文';
}
else {
$Lang = 'English';
}
return $Lang;
}
function GetBrowser() {
$Browser = $_SERVER['HTTP_USER_AGENT'];
if (preg_match('/MSIE/i',$Browser)) {
$Browser = 'MSIE';
}
elseif (preg_match('/Firefox/i',$Browser)) {
$Browser = 'Firefox';
}
elseif (preg_match('/Chrome/i',$Browser)) {
$Browser = 'Chrome';
}
elseif (preg_match('/Safari/i',$Browser)) {
$Browser = 'Safari';
}
elseif (preg_match('/Opera/i',$Browser)) {
$Browser = 'Opera';
}
else {
$Browser = 'Other';
}
return $Browser;
}
function GetOS() {
$OS = $_SERVER['HTTP_USER_AGENT'];
if (preg_match('/win/i',$OS)) {
$OS = 'Windows';
}
elseif (preg_match('/mac/i',$OS)) {
$OS = 'MAC';
}
elseif (preg_match('/linux/i',$OS)) {
$OS = 'Linux';
}
elseif (preg_match('/unix/i',$OS)) {
$OS = 'Unix';
}
elseif (preg_match('/bsd/i',$OS)) {
$OS = 'BSD';
}
else {
$OS = 'Other';
}
return $OS;
}
function GetIP() {
if (!emptyempty($_SERVER['HTTP_CLIENT_IP'])) {
//如果变量是非空或非零的值,则 empty()返回 FALSE。
$IP = explode(',',$_SERVER['HTTP_CLIENT_IP']);
}
elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$IP = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
}
elseif (!emptyempty($_SERVER['REMOTE_ADDR'])) {
$IP = explode(',',$_SERVER['REMOTE_ADDR']);
}
else {
$IP[0] = 'None';
}
return $IP[0];
}
private function GetAddIsp() {
$IP = $this->GetIP();
$AddIsp = mb_convert_encoding(file_get_contents('http://open.baidu.com/ipsearch/s?tn=ipjson&wd='.$IP),'UTF-8','GBK');
//mb_convert_encoding() 转换字符编码。
if (preg_match('/noresult/i',$AddIsp)) {
$AddIsp = 'None';
}
else {
$Sta = stripos($AddIsp,$IP) + strlen($IP) + strlen('来自');
$Len = stripos($AddIsp,'"}')-$Sta;
$AddIsp = substr($AddIsp,$Sta,$Len);
}
$AddIsp = explode(' ',$AddIsp);
return $AddIsp;
}
function GetAdd() {
$Add = $this->GetAddIsp();
return $Add[0];
}
function GetIsp() {
$Isp = $this->GetAddIsp();
if ($Isp[0] != 'None' && isset($Isp[1])) {
$Isp = $Isp[1];
}
else {
$Isp = 'None';
}
return $Isp;
}
}
?>
php如何获取访问者地理位置,PHP获取访客IP和地理位置等信息的类相关推荐
- Java获取访客IP地址
原文地址:https://dsx2016.com/?p=226 ➢ 获取IP地址 在开发工作中,我们常常需要获取客户端的IP ➢ nginx配置 为了拿到真实的IP地址,避免代理等错误源,需要在ngi ...
- php ip获取邮政编码,php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法...
这篇文章主要介绍了php获取指定(访客)IP所有信息(地址.邮政编码.国家.经纬度等)的方法,通过一个API接口调用实现针对访客信息的相关查询功能,非常简单实用, 本文实例讲述了php获取指定(访客) ...
- php获取访客精确ip,PHP获取访客IP、地区位置等技巧分享
本文主要和大家介绍了利用PHP获取访客IP.地区位置.浏览器及来源页面等信息的相关资料,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考借鉴价值,需要的朋友们下面来一起看看吧. 示例代码& ...
- php ip获取邮政编码,php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法,所有信息经纬度...
php获取指定(访客)IP所有信息(地址.邮政编码.国家.经纬度等)的方法,所有信息经纬度 本文实例讲述了php获取指定(访客)IP所有信息(地址.邮政编码.国家.经纬度等)的方法.分享给大家供大家参 ...
- Wordpress用文件记录访客 IP和访问量
1.记录访问量,显示访客IP [php原码] <?php/*打开文件用于记录访问量,如果文件不存在自动创建*/ $counterFile = "counter.txt";$f ...
- 网站访客系统php,2套网站访客IP黑名单源码有效屏蔽ip(PHP实现,CC防火墙)
网站IP黑名单2组源代码可有效阻止ip(在PHP中实现,可以用作CC防火墙),一组是单页banIP版本(支持PHP5.4或更高版本,未选择服务器环境) ,系统未选中) 一组是整个站点的banIP版本 ...
- 站长 站长统计排除的访客IP
登陆站长统计,选择菜单"站点列表",在表格点击"统计代码" 选择"排除访客IP",并输入你要排除的访客IP,点击确定,这样就不会统计到该IP ...
- html获取访客ip,jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
本文实例讲述了jQuery获取访问者IP地址的方法.分享给大家供大家参考,具体如下: $(document).ready(function(){ //通过调用新浪IP地址库接口查询用户当前所在国家.省 ...
- html页面跳转IP,JS获取访客IP进行自动跳转
因业务需要进行地区判断跳转指定站点,下面是我个人实现的办法,分享给大家,仅供参考,切勿做非法用途 第一步,获取IP并判断归属地 直接使用搜狐的IP库查询接口 返回的地址是: var returnCit ...
最新文章
- 小程序不同页面之间通讯的解决方案
- Java final关键字,常量的定义
- 华为端到端项目管理流程_【达睿原创】供应链端到端管理 – 看华为是怎么做的...
- Html5变量游戏,第三章语法、关键保留字及变量
- 水系图一般在哪里找得到_城市供水系统防护体系的探索与思考
- VS2010-MFC(Ribbon界面开发:为Ribbon Bar添加控件)
- 火狐浏览器不兼容event问题
- 【Wordle】Day8:昨天忘了的后果就是今天输了
- 计算机毕业设计Java公立医院绩效考核系统(源码+系统+mysql数据库+Lw文档)
- Java:实现将方阵中的元素顺时针旋转90度算法(附完整源码)
- 新能源与自动驾驶汽车市场
- 高级语言.汇编语言和机器语言
- intel服务器芯片排行,【2021Intel服务器CPU排行榜】Intel服务器CPU哪款好_热门Intel服务器CPU推荐-太平洋产品报价...
- [精华]史上最强买笔记本电脑专业精粹导购指南,让奸商彻底晕菜!
- React路由跳转时通过传参进行动态渲染的方法
- 抑郁检测用文本数据集
- 为什么正态分布如此普遍
- 通过Bypass UAC进行权限提升
- oracle 拼接clob,把string拼接成clob类型
- Selenium3 Python WebDriver API源码探析(10):动作链(ActionChains):鼠标事件和键盘事件
热门文章
- python爬取文字编程_Python怎么爬取人人网新鲜事
- 《技术顾问聘用协议书》个人分享
- 自动化测试框架之DDT-数据驱动
- 如何编写产品用户手册需求文档,才算合格的产品/运营
- JavaScript-window对象
- 杂谈:WiFi7-802.11be
- python to datetime_python-pd.to_datetime或解析日期时间不适用于我...
- 通达信自动交易系统接口定义
- 第30课时_电力MOSFET开关概述及工作原理
- Beyond 《光辉岁月》 岁月无声