L'adresse spécifique peut être trouvée en fonction de l'adresse IP ; l'adresse IP est une "carte d'identité" obtenue en fonction du point de connexion réseau de chaque ordinateur. L'interrogation de l'adresse IP nous permet de savoir efficacement où se trouve l'ordinateur. est. .
L'adresse IP est une "carte d'identité" obtenue en fonction du point de connexion réseau de chaque ordinateur. L'interrogation de l'adresse IP peut effectivement nous permettre de savoir où se trouve l'ordinateur. est.
Comment interroger un emplacement géographique spécifique en fonction de l'adresse IP
Baidu Map dispose d'une API pour interroger des adresses en fonction de l'IP
http://lbsyun.baidu.com/index.php?title=webapi/ip-api
1. Vérifiez directement l'adresse IP selon l'API Baidu Map.
L'API indique que la demande des deux adresses suivantes peut obtenir l'adresse spécifique en fonction de l'IP :
Les paramètres de la demande sont les suivants :
Si l'adresse IP de notre requête est 192.168.1.1, alors l'adresse de la requête est construite comme suit :
http://api.map.baidu.com/location/ip?ak=XXX(自己申请的API TOKEN)&ip=192.168.1.1
Python est utilisé comme langage expérimental ici, et le code et les commentaires sont les suivants :
from urllib import request import json # ak is bound with ip baidu_api_ak = "ZX9QCmwzzItzRO5ssD7GNgEwD4OQduWR" ip_addr = "xxx.xxx.xxx.xxx" # Request url url = "http://api.map.baidu.com/location/ip?ak=" + baidu_api_ak + "&ip=" + ip_addr req = request.Request(url) res = request.urlopen(req) res = res.read() # Bytes to str n = res.decode(encoding='utf-8') # str to json s = json.loads(n) t = json.dumps(s, ensure_ascii=False) print(n) print(t)
Le code ci-dessus La signification générale est que l'URL de la requête lit le flux renvoyé et le convertit au format json. Le résultat est comme indiqué dans la figure ci-dessous : <🎜. >
Remarquez que dans la figure ci-dessus, vous ne pouvez voir que Dans une vaste zone telle que la ville de Chengdu, province du Sichuan, les champs tels que « rue » sont vides lorsqu'ils sont interrogés. En d’autres termes, seule une plage approximative peut être interrogée. PS : La valeur renvoyée contient également la latitude et la longitude, mais selon le document original, ces latitude et longitude sont la latitude et la longitude du point central de la ville où se trouve l'IP.2. Vérifiez d'abord la longitude et la latitude, puis vérifiez l'adresse en fonction de la longitude et de la latitude.
Basé sur la requête de latitude et de longitude IP, Baidu Maps ne fournit pas d'API, mais il existe toujours des ressources hors du mur. Ce n'est pas posté ici, allez le chercher vous-même. . . Si vous obtenez la latitude et la longitude, vous pouvez interroger l'adresse détaillée via l'API latitude et longitude + Baidu Map. L'API globale de géocodage inversé de Baidu Map est la suivante : http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding-abroadComme indiqué ci-dessous, supposons que nous avons obtenu la latitude et la longitude. Selon les règles de l'API, ce qui suit le paramètre de localisation est la latitude et la longitude. Selon la latitude et la longitude, on peut trouver l'adresse détaillée. Le code expérimental et les commentaires sont les suivants :
#! /usr/bin/env python # coding=utf-8 from urllib import request import json # ak is bound with ip baidu_api_ak = "ZX9QCmwzzItzRO5ssD7GNgEwD4OQduWR" url = "http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location=30.6667,104.0670&output=json&pois=1&ak=" + baidu_api_ak req = request.Request(url) res = request.urlopen(req) res = res.read() n = res.decode(encoding='utf-8') # The result format is renderReverse&&renderReverse(json str). so.... n = n[len("renderReverse&&renderReverse") + 1:-1] st = json.loads(n) # st's structure # result: XXXX # status: XXXX result = st["result"] for i in result: print(i, result[i])
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!