我在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/