这是一个能够获取到用户访问信息的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和地理位置等信息的类相关推荐

  1. Java获取访客IP地址

    原文地址:https://dsx2016.com/?p=226 ➢ 获取IP地址 在开发工作中,我们常常需要获取客户端的IP ➢ nginx配置 为了拿到真实的IP地址,避免代理等错误源,需要在ngi ...

  2. php ip获取邮政编码,php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法...

    这篇文章主要介绍了php获取指定(访客)IP所有信息(地址.邮政编码.国家.经纬度等)的方法,通过一个API接口调用实现针对访客信息的相关查询功能,非常简单实用, 本文实例讲述了php获取指定(访客) ...

  3. php获取访客精确ip,PHP获取访客IP、地区位置等技巧分享

    本文主要和大家介绍了利用PHP获取访客IP.地区位置.浏览器及来源页面等信息的相关资料,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考借鉴价值,需要的朋友们下面来一起看看吧. 示例代码& ...

  4. php ip获取邮政编码,php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法,所有信息经纬度...

    php获取指定(访客)IP所有信息(地址.邮政编码.国家.经纬度等)的方法,所有信息经纬度 本文实例讲述了php获取指定(访客)IP所有信息(地址.邮政编码.国家.经纬度等)的方法.分享给大家供大家参 ...

  5. Wordpress用文件记录访客 IP和访问量

    1.记录访问量,显示访客IP [php原码] <?php/*打开文件用于记录访问量,如果文件不存在自动创建*/ $counterFile = "counter.txt";$f ...

  6. 网站访客系统php,2套网站访客IP黑名单源码有效屏蔽ip(PHP实现,CC防火墙)

    网站IP黑名单2组源代码可有效阻止ip(在PHP中实现,可以用作CC防火墙),一组是单页banIP版本(支持PHP5.4或更高版本,未选择服务器环境)  ,系统未选中) 一组是整个站点的banIP版本 ...

  7. 站长 站长统计排除的访客IP

    登陆站长统计,选择菜单"站点列表",在表格点击"统计代码" 选择"排除访客IP",并输入你要排除的访客IP,点击确定,这样就不会统计到该IP ...

  8. html获取访客ip,jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)

    本文实例讲述了jQuery获取访问者IP地址的方法.分享给大家供大家参考,具体如下: $(document).ready(function(){ //通过调用新浪IP地址库接口查询用户当前所在国家.省 ...

  9. html页面跳转IP,JS获取访客IP进行自动跳转

    因业务需要进行地区判断跳转指定站点,下面是我个人实现的办法,分享给大家,仅供参考,切勿做非法用途 第一步,获取IP并判断归属地 直接使用搜狐的IP库查询接口 返回的地址是: var returnCit ...

最新文章

  1. 小程序不同页面之间通讯的解决方案
  2. Java final关键字,常量的定义
  3. 华为端到端项目管理流程_【达睿原创】供应链端到端管理 – 看华为是怎么做的...
  4. Html5变量游戏,第三章语法、关键保留字及变量
  5. 水系图一般在哪里找得到_城市供水系统防护体系的探索与思考
  6. VS2010-MFC(Ribbon界面开发:为Ribbon Bar添加控件)
  7. 火狐浏览器不兼容event问题
  8. 【Wordle】Day8:昨天忘了的后果就是今天输了
  9. 计算机毕业设计Java公立医院绩效考核系统(源码+系统+mysql数据库+Lw文档)
  10. Java:实现将方阵中的元素顺时针旋转90度算法(附完整源码)
  11. 新能源与自动驾驶汽车市场
  12. 高级语言.汇编语言和机器语言
  13. intel服务器芯片排行,【2021Intel服务器CPU排行榜】Intel服务器CPU哪款好_热门Intel服务器CPU推荐-太平洋产品报价...
  14. [精华]史上最强买笔记本电脑专业精粹导购指南,让奸商彻底晕菜!
  15. React路由跳转时通过传参进行动态渲染的方法
  16. 抑郁检测用文本数据集
  17. 为什么正态分布如此普遍
  18. 通过Bypass UAC进行权限提升
  19. oracle 拼接clob,把string拼接成clob类型
  20. Selenium3 Python WebDriver API源码探析(10):动作链(ActionChains):鼠标事件和键盘事件

热门文章

  1. python爬取文字编程_Python怎么爬取人人网新鲜事
  2. 《技术顾问聘用协议书》个人分享
  3. 自动化测试框架之DDT-数据驱动
  4. 如何编写产品用户手册需求文档,才算合格的产品/运营
  5. JavaScript-window对象
  6. 杂谈:WiFi7-802.11be
  7. python to datetime_python-pd.to_datetime或解析日期时间不适用于我...
  8. 通达信自动交易系统接口定义
  9. 第30课时_电力MOSFET开关概述及工作原理
  10. Beyond 《光辉岁月》 岁月无声