我在 Python 2.7 上使用 Django 1.73。
如何使用 GeoIP Django 查询 ASN 以获得已知 IP 地址?
from django.contrib.gis.geoip import GeoIP
g = GeoIP()
g.city('72.14.207.99') #returns the city
g.country('google.com') #returns the country
如何使用 Django 查询 asn? (已在 GEO_PATH 上安装 ASN 二进制文件)
编辑
我研究发现存在一个Python包PyGeoIP,
在 documentation存在 ASN 查找,但我不知道如何直接调用 GeoDjango,而不是使用这个包。
最佳答案
如果您乐意使用 pygeoIp,那么它非常简单。
首先从GeoIP下载ASN数据库然后通过
安装pygeoip
pip install pygeoip
然后
>>> gi = pygeoip.GeoIP('/path/to/GeoIPASNum.dat')
>>> gi.org_by_name('cnn.com')
'AS5662 Turner Broadcasting'
或
>>> gi.org_by_addr("90.223.167.43")
u'AS5607 BSKYB-BROADBAND-AS'
如果您不想下载任何数据库,可以使用pyip2asn
In [1]:import pyip2asn
In [2]:# Generate ASN Description Dictionary in order to speed up the IPv4 to ASN lookup.
In [3]: asn_dict = pyip2asn.get_asn_dictionary()
In [4]: pyip2asn.ip2asn("8.8.8.8",asn_dict)
Out[4]: (15169, u'GOOGLE - Google Inc.')
关于python - 如何在 Django 上使用 GeoIP 查询 ASN 以获得已知 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29048701/