php 获取客户端的ip、地理信息、浏览器信息、本地真实ip


转自:http://www.blhere.com/948.html

这是非常实用的php常用类。获取客户端的ip、地理信息、浏览器信息、本地真实ip

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM