Heim  >  Artikel  >  Backend-Entwicklung  >  php 获取客户端IP地址、地理信息、浏览器信息、本地真实IP的代码

php 获取客户端IP地址、地理信息、浏览器信息、本地真实IP的代码

WBOY
WBOYOriginal
2016-07-25 09:04:35918Durchsuche
  1. // 作用取得客户端的ip、地理信息、浏览器
  2. class get_gust_info {
  3. ////获得访客浏览器类型
  4. function GetBrowser(){
  5. if(!empty($_SERVER['HTTP_USER_AGENT'])){
  6. $br = $_SERVER['HTTP_USER_AGENT'];
  7. if (preg_match('/MSIE/i',$br)) {
  8. $br = 'MSIE';
  9. }elseif (preg_match('/Firefox/i',$br)) {
  10. $br = 'Firefox';
  11. }elseif (preg_match('/Chrome/i',$br)) {
  12. $br = 'Chrome';
  13. }elseif (preg_match('/Safari/i',$br)) {
  14. $br = 'Safari';
  15. }elseif (preg_match('/Opera/i',$br)) {
  16. $br = 'Opera';
  17. }else {
  18. $br = 'Other';
  19. }
  20. return $br;
  21. }else{return "获取浏览器信息失败!";}
  22. }
  23. ////获得访客浏览器语言
  24. function GetLang(){
  25. if(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
  26. $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
  27. $lang = substr($lang,0,5);
  28. if(preg_match("/zh-cn/i",$lang)){
  29. $lang = "简体中文";
  30. }elseif(preg_match("/zh/i",$lang)){
  31. $lang = "繁体中文";
  32. }else{
  33. $lang = "English";
  34. }
  35. return $lang;
  36. }else{return "获取浏览器语言失败!";}
  37. }
  38. ////获取访客操作系统
  39. function GetOs(){
  40. if(!empty($_SERVER['HTTP_USER_AGENT'])){
  41. $OS = $_SERVER['HTTP_USER_AGENT'];
  42. if (preg_match('/win/i',$OS)) {
  43. $OS = 'Windows';
  44. }elseif (preg_match('/mac/i',$OS)) {
  45. $OS = 'MAC';
  46. }elseif (preg_match('/linux/i',$OS)) {
  47. $OS = 'Linux';
  48. }elseif (preg_match('/unix/i',$OS)) {
  49. $OS = 'Unix';
  50. }elseif (preg_match('/bsd/i',$OS)) {
  51. $OS = 'BSD';
  52. }else {
  53. $OS = 'Other';
  54. }
  55. return $OS;
  56. }else{return "获取访客操作系统信息失败!";}
  57. }
  58. ////获得访客真实ip
  59. function Getip(){
  60. if(!empty($_SERVER["HTTP_CLIENT_IP"])){
  61. $ip = $_SERVER["HTTP_CLIENT_IP"];
  62. }
  63. if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ //获取代理ip
  64. $ips = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
  65. }
  66. if($ip){
  67. $ips = array_unshift($ips,$ip);
  68. }
  69. $count = count($ips);
  70. for($i=0;$i if(!preg_match("/^(10|172\.16|192\.168)\./i",$ips[$i])){//排除局域网ip
  71. $ip = $ips[$i];
  72. break;
  73. }
  74. }
  75. $tip = empty($_SERVER['REMOTE_ADDR']) ? $ip : $_SERVER['REMOTE_ADDR'];
  76. if($tip=="127.0.0.1"){ //获得本地真实IP
  77. return $this->get_onlineip();
  78. }else{
  79. return $tip;
  80. }
  81. }
  82. ////获得本地真实IP
  83. function get_onlineip() {
  84. $mip = file_get_contents("http://city.ip138.com/city0.asp");
  85. if($mip){
  86. preg_match("/\[.*\]/",$mip,$sip);
  87. $p = array("/\[/","/\]/");
  88. return preg_replace($p,"",$sip[0]);
  89. }else{return "获取本地IP失败!";}
  90. }
  91. ////根据ip获得访客所在地地名
  92. function Getaddress($ip=''){
  93. if(empty($ip)){
  94. $ip = $this->Getip();
  95. }
  96. $ipadd = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=".$ip);//根据新浪api接口获取
  97. if($ipadd){
  98. $charset = iconv("gbk","utf-8",$ipadd);
  99. preg_match_all("/[\x{4e00}-\x{9fa5}]+/u",$charset,$ipadds);
  100. return $ipadds; //返回一个二维数组
  101. }else{return "addree is none";}
  102. }
  103. }
  104. $gifo = new get_gust_info();
  105. echo "你的ip:".$gifo->Getip();
  106. echo "
    所在地:";
  107. $ipadds = $gifo->Getaddress();
  108. foreach($ipadds[0] as $value){
  109. echo "\r\n ".iconv("utf-8","gbk",$value);
  110. }
  111. echo "
    浏览器类型:".$gifo->GetBrowser();
  112. echo "
    浏览器语言:".$gifo->GetLang();
  113. echo "
    操作系统:".$gifo->GetOs();
  114. ?>
复制代码

>>> 您可能感兴趣的文章: 获取用户真实IP地址的php代码 php 获取外网真实IP的二种方法 php获取准确的客户端IP地址的代码 php获取客户端的真实IP的方法介绍 PHP通过IP获取地理位置的代码 php获取网站地理位置及操作系统信息的代码分享 php通过IP获取地理位置的实例参考 php 获取用户真实IP与地理位置(淘宝IP接口)的实现代码 php根据IP地址获取当前地理位置接口



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn