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

10-11 00:25