首頁 > 後端開發 > php教程 > php 取得客戶端IP位址、地理資訊、瀏覽器資訊、本機真實IP的程式碼

php 取得客戶端IP位址、地理資訊、瀏覽器資訊、本機真實IP的程式碼

WBOY
發布: 2016-07-25 09:04:35
原創
934 人瀏覽過
  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. $br = $_SERVER['HTTP_USER_AGENT'];
  8. $br = $_SERVER['HTTP_USER_AGENT'];
  9. if' /MSIE/i',$br)) {
  10. $br = 'MSIE';
  11. }elseif (preg_match('/Firefox/i',$br)) {
  12. $br = 'Firefox' ;
  13. }elseif (preg_match('/Chrome/i',$br)) {
  14. $br = 'Chrome';
  15. }elseif (preg_match('/Safari/i',$br)) {
  16. $br = 'Safari';
  17. }elseif (preg_match('/Opera/i',$br)) {
  18. $br = 'Opera';
  19. }else {
  20. $br = 'Other';
  21. }
  22. return $br;
  23. }else{return "取得瀏覽器資訊失敗!";}
  24. }
  25. ////取得訪客瀏覽器語言
  26. function GetLang(){
  27. if(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
  28. $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
  29. $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
  30. $ if(preg_match("/zh-cn/i",$lang)){
  31. $lang = "簡體中文";
  32. }elseif(preg_match( "/zh/i",$lang)){
  33. $lang = "繁體中文";
  34. }else{
  35. $lang = "English";
  36. }
  37. return $lang;
  38. }else{return "取得瀏覽器語言失敗! ";}
  39. }
  40. ////取得訪客作業系統
  41. function GetOs(){
  42. if(!empty($_SERVER['HTTP_USER_AGENT'])){
  43. $OS = $_SERVER['HTTP_USER_AGENT'];
  44. if (preg_match('/win/i',$OS)) {
  45. $OS = 'Windows';
  46. }elseif (preg_match('/ mac/i',$OS)) {
  47. $OS = 'MAC';
  48. }elseif (preg_match('/linux/i',$OS)) {
  49. $OS = 'Linux';
  50. }elseif (preg_match('/unix/i',$OS)) {
  51. $OS = 'Unix';
  52. }elseif (preg_match('/bsd/i',$OS)) {
  53. $OS = 'BSD';
  54. }else {
  55. $OS = 'Other';
  56. }
  57. return $OS;
  58. }else{return "取得訪客作業系統資訊資訊失敗! ";}
  59. }
  60. ////取得訪客真實ip
  61. function Getip(){
  62. if(!empty($_SERVER["HTTP_CLIENT_IP"])){
  63. $ip = $_SERVER["HTTP_CLIENT_IP"];
  64. }
  65. if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ //取得代理ip
  66. $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
  67. }
  68. if($ip){
  69. $ips = array_unshift($ips,$ip);
  70. }
  71. <. count> for($i=0;$i if(!preg_match("/^(10|172.16|192.168)./i",$ ips[$i])){//排除區域網路ip
  72. $ip = $ips[$i];
  73. break;
  74. }
  75. }
  76. $tip = empty($_SERVER[ 'REMOTE_ADDR']) ? $ip : $_SERVER['REMOTE_ADDR'];
  77. if($tip=="127.0.0.1"){ //取得本地真實IP
  78. return $this->get_onlineip() ;
  79. }else{
  80. return $tip;
  81. }
  82. }
  83. ////獲得本地真實IP
  84. function get_onlineip() {
  85. $mip = file_get_contents("http://city.ip138.com/city0.asp");
  86. if($mip){
  87. preg_match("/[.*]/",$mip,$sip);
  88. $p = array("/[/","/]/");
  89. return preg_replace($p,"",$sip[0]);
  90. }else{return "取得本地IP失敗! ";}
  91. }
  92. ////依ip取得訪客所在地地名
  93. function Getaddress($ip=''){
  94. if(empty($ip)){
  95. $ip = $this->Getip();
  96. }
  97. $ipadd = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=".$ ip);//根據新浪api介面取得
  98. if($ipadd){
  99. $charset = iconv("gbk","utf-8",$ipadd);
  100. preg_match_all("/[x {4e00}-x{9fa5}]+/u",$charset,$ipadds);
  101. return $ipadds; //回傳一個二維陣列
  102. }else{return "addree is none" ;}
  103. }
  104. }
  105. $gifo = new get_gust_info();
  106. echo "你的ip:".$gifo->Getip();
  107. echo "
    所在地:";
  108. $ipadds = $gifo->Getaddress();
  109. foreach($ipadds[0] as $value){
  110. echo "rn ".iconv("utf-8","gbk ",$value);
  111. }
  112. echo "
    瀏覽器類型:".$gifo->GetBrowser();
echo "
瀏覽器語言:" .$gifo->GetLang();
echo "
作業系統:".$gifo->GetOs(); ?>
複製程式碼

>>> 您可能有興趣的文章: 取得使用者真實IP位址的php代碼 php 取得外網真實IP的二種方法 php取得準確的客戶端IP位址的程式碼 php取得客戶端的真實IP的方法介紹 PHP透過IP取得地理位置的代碼 php取得網站地理位置及作業系統資訊的程式碼分享 php透過IP取得地理位置的實例參考 php 取得使用者真實IP與地理位置(淘寶IP介面)的實作代碼 php依IP位址取得目前地理位置介面



來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板