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