【发布时间】:2014-07-10 13:49:42
【问题描述】:
我正在开发一个项目,该项目需要将用户位置存储在我的数据库中。我得到了该用户的公共 IP 地址。但我无法获取用户位置。我尝试了几种方法(来自 StackOverflow),但没有找到任何提示。像下面这样
url = urllib.urlopen("http://api.hostip.info/get_html.php?ip=%s&position=true" % ip)
data = re.compile('^[^\(]+\(|\)$').sub('', url.read())
print data
但我得到的结果是
Unknown Country?) (XX)
City: (Unknown City?)
另一种方式:
import urllib
response = urllib.urlopen("http://api.hostip.info/get_html.php?ip={}&position=true".format(ip)).read()
print(response)
但结果是
Country: (Unknown Country?) (XX)
City: (Unknown City?)
Latitude:
Longitude:
IP: 115.xxx.xxx.xx
任何帮助将不胜感激!
【问题讨论】:
-
显然hostip.info不知道该IP属于哪个国家。
-
@AnttiHaapala,我也试过ipinfodb.com,但是对于两个不同的IP位置,它给出了相同的地址
-
在尝试正则表达式提取相关部分之前,
print url.read()是什么?
标签: python