使用 Python 获取 IP 托管服务提供商
Posted
技术标签:
【中文标题】使用 Python 获取 IP 托管服务提供商【英文标题】:Get hosting provider for IP with Python 【发布时间】:2012-10-27 16:35:03 【问题描述】:我有一个简单的 Python 脚本,它可以获取域的 IP 并使用 Maxmind 查找国家/地区。我希望该脚本还可以获取托管该 IP/站点的网络托管公司。这可能吗,如果可以,怎么办?我已经搜索了这个网站和其他地方,但运气不佳。
【问题讨论】:
【参考方案1】:如果您对调用第 3 方服务的延迟没问题,您可以使用http://ipinfo.io API(我的服务),它会返回地理位置和公司信息,例如:
$ curl ipinfo.io
"ip": "67.188.232.131",
"hostname": "c-67-188-232-131.hsd1.ca.comcast.net",
"city": "Mountain View",
"region": "California",
"country": "US",
"loc": "37.4192,-122.0574",
"org": "AS7922 Comcast Cable Communications, Inc.",
"postal": "94043"
这是一个简单的 python 示例,它使用了出色的 requests
库:
>>> import requests
>>> r = requests.get('http://ipinfo.io/67.188.232.131/json')
>>> r.json['org']
u'AS7922 Comcast Cable Communications, Inc.'
>>> r.json['city']
u'Mountain View'
更多详情请查看http://ipinfo.io/developers
【讨论】:
【参考方案2】:如果您想获取 IP 后面的组织名称(AS 编号/名称)(而不是 DNS 名称):
>>> import pygeoip
>>> ai = pygeoip.GeoIP('GeoIPASNum.dat', pygeoip.MEMORY_CACHE)
>>> ip = '1.1.1.1'
>>> asn = ai.org_by_addr(ip)
>>> print asn
AS15169 Google Inc.
--ab1
【讨论】:
【参考方案3】:>>> import socket
>>> socket.gethostbyaddr("69.59.196.211")
('***.com', ['211.196.59.69.in-addr.arpa'], ['69.59.196.211'])
【讨论】:
以上是关于使用 Python 获取 IP 托管服务提供商的主要内容,如果未能解决你的问题,请参考以下文章