Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Entwicklungstipps: Ermitteln Sie die Stadt anhand der IP-Adresse
Der Inhalt dieses Artikels besteht darin, Ihnen PHP-Entwicklungstipps zum Erhalten der Stadt basierend auf der IP-Adresse mitzuteilen. Es hat einen gewissen Referenzwert.
Wir verwenden diese Methode immer noch recht häufig, da sie praktisch ist, um Informationen für die Data-Mining-Analyse zu sammeln. Diese Methode ermittelt nicht nur die aktuelle Stadt anhand der IP-Adresse, sondern auch den Standort der Stadt des Benutzers anhand der HTTP-Anfrage.
Implementierungsmethode: Erhalten Sie es hauptsächlich basierend auf der Amap-API. Registrieren Sie sich zunächst als Amap-Benutzer, authentifizieren Sie sich dann als Entwickler, erstellen Sie eine Anwendung und erhalten Sie den aufzurufenden Schlüssel. Die spezifische Implementierungsmethode lautet wie folgt:
<?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" => '北京市' ); } }
Verwandte Empfehlungen:
Beurteilung von PHP Entwicklungstipps Ob auf WeChat zugegriffen werden soll
Das obige ist der detaillierte Inhalt vonPHP-Entwicklungstipps: Ermitteln Sie die Stadt anhand der IP-Adresse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!