この記事の内容は、IP アドレスに基づいて都市を取得するための PHP 開発のヒントを共有することです。必要な友人はそれを参照できます
私たちは今でもこの方法をよく使用しています。データ マイニング分析のための情報の収集が容易になります。このメソッドは、IP アドレスに基づいて現在の都市を取得するだけでなく、HTTP リクエストに基づいてユーザーの都市の位置も取得します。
実装方法:主にAmap APIに基づいて取得します。まずAmapユーザーとして登録し、次に開発者として認証し、アプリケーションを作成し、呼び出すキーを取得します。具体的な実装方法は次のとおりです:
<?php /** * ======================================= * Created by ZHIHUA·WEI. * Author: ZHIHUA·WEI * Date: 2018/4/12 * Time: 16:13 * Project: PHP开发小技巧 * Power: 根据ip地址获取城市 * ======================================= */ /** * 根据HTTP请求获取用户位置 */ function get_user_location() { $key = "4a218d0d82c3a74acf019b701e8c0ccc"; // 高德地图key $url = "http://restapi.amap.com/v3/ip?key=$key"; $json = file_get_contents($url); $obj = json_decode($json, true); // 转换数组 $obj["message"] = $obj["status"] == 0 ? "失败" : "成功"; return $obj; } /** * 根据 ip 获取 当前城市 */ function get_city_by_ip() { if (!empty($_SERVER["HTTP_CLIENT_IP"])) { $cip = $_SERVER["HTTP_CLIENT_IP"]; } elseif (!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) { $cip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } elseif (!empty($_SERVER["REMOTE_ADDR"])) { $cip = $_SERVER["REMOTE_ADDR"]; } else { $cip = ""; } $url = 'https://restapi.amap.com/v3/ip'; $data = array( 'output' => 'json', 'key' => '4a218d0d82c3a74acf019b701e8c0ccc', 'ip' => $cip ); $postdata = http_build_query($data); $opts = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata ) ); $context = stream_context_create($opts); $result = file_get_contents($url, false, $context); if (!empty($result)) { $res = json_decode($result, true); if (!empty($res)) { if (count($res['province']) == 0) { $res['province'] = '北京市'; } if (!empty($res['province']) && $res['province'] == "局域网") { $res['province'] = '北京市'; } if (count($res['city']) == 0) { $res['city'] = '北京市'; } } else { $res['province'] = '北京市'; $res['city'] = '北京市'; } return $res; } else { return array( "province" => '北京市', "city" => '北京市' ); } }ログイン後にコピー
関連する推奨事項:
PHP 開発のヒント: WeChat にアクセスするかどうかの決定
以上がPHP 開発のヒント: IP アドレスに基づいて都市を取得するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。