ホームページ > バックエンド開発 > PHPチュートリアル > クライアント IP アドレス、地理情報、ブラウザ情報、ローカルの実際の IP を取得するための PHP コード

クライアント IP アドレス、地理情報、ブラウザ情報、ローカルの実際の IP を取得するための PHP コード

WBOY
リリース: 2016-07-25 09:04:35
オリジナル
936 人が閲覧しました
  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 = 'その他';
  19. }
  20. return $br;
  21. }else{return "ブラウザ情報の取得に失敗しました!";}
  22. }
  23. ////訪問者のブラウザ言語を取得する
  24. 関数 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. 関数 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 } else {return "ゲスト オペレーティング システム情報の取得に失敗しました。 ";}
  56. }
  57. ////訪問者の実際の IP を取得します
  58. function Getip(){
  59. if(!empty($_SERVER["HTTP_CLIENT_IP"])){
  60. $ip = $_SERVER["HTTP_CLIENT_IP"];
  61. }
  62. if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ //プロキシIPを取得
  63. $ips =explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
  64. }
  65. if($ip) {
  66. $ips = array_unshift($ips,$ip);
  67. }
  68. $count = count($ips);
  69. for($i=0;$i<$count;$i++){
  70. if(!preg_match ( "/^(10|172.16|192.168)./i",$ips[$i])){//LAN 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. ////ローカルの実際の IP を取得します
  82. 関数 get_onlineip() {
  83. $mip = file_get_contents("http://city.ip138 .com/ city0.asp");
  84. if($mip){
  85. preg_match("/[.*]/",$mip,$sip);
  86. $p = array("/[/","/] /") ;
  87. return preg_replace($p,"",$sip[0]);
  88. }else{return "ローカル IP の取得に失敗しました! ";}
  89. }
  90. ////ip
  91. 関数に基づいて訪問者の場所名を取得します Getaddress($ip=''){
  92. if(empty($ip)){
  93. $ip = $this->Getip () ;
  94. }
  95. $ipadd = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=".$ip);//Sina API インターフェースに従って
  96. を取得しますif($ipadd ){
  97. $charset = iconv("gbk","utf-8",$ipadd);
  98. preg_match_all("/[x{4e00}-x{9fa5}]+/u",$charset, $ipadds);
  99. return $ipadds; // 2 次元配列を返します
  100. }else{return "アドレスがありません";}
  101. }
  102. }
  103. $gifo = new get_gust_info();
  104. echo "あなたの IP:" .$gifo- >Getip();
  105. echo "
    Location:";
  106. $ipadds = $gifo->Getaddress();
  107. foreach($ipadds[0] as $value){
  108. echo "rn " .iconv("utf-8","gbk",$value);
  109. }
  110. echo "
    ブラウザの種類:".$gifo->GetBrowser();
  111. echo "
    ブラウザ言語: ".$gifo->GetLang();
  112. echo "
    オペレーティング システム: ".$gifo->GetOs();
  113. ?>
  114. コードをコピー

>>>> あなたが興味を持ちそうな記事: ユーザーの実際のIPアドレスのphpコードを取得します phpで外部ネットワークの実際のIPを取得する2つの方法 正確なクライアント IP アドレスを取得するための php コード phpでクライアントの実IPを取得する方法の紹介 PHP は IP 経由で位置情報コードを取得します Webサイトの場所とオペレーティングシステム情報を取得するためのPHPのコード共有 IPを介して地理的位置を取得するためのPHPのリファレンス例 ユーザーの実際のIPと地理的位置を取得するためのphp実装コード(淘宝網IPインターフェース) phpはIPアドレスに基づいて現在の地理的位置インターフェースを取得します



ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート