python - 如何在 Django 上使用 GeoIP 查询 ASN 以获得已知 IP 地址?

标签 python django gis geodjango geoip

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

相关文章:

Django - 将代理模型简化为单个类

javascript - 当我单击 Django 模板页面上的超链接时调用单独的事件

java - 使用给定经纬度的谷歌地图计算距离

python - Pandas 分层数据框

python - 在 View 中调用的函数中即时完​​成脚本

Google 的 'Encoded Polyline Algorithm' 的 C# 实现

javascript - mapbox-gl:根据中心点、缩放级别和尺寸计算 map 边界

python - seaborn lmplot 中的标记

python - 将查询集转换为包含 JSON 值的字典

python - Python 中的定点迭代