使用 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 托管服务提供商的主要内容,如果未能解决你的问题,请参考以下文章

在 ASP.NET Core 2.2 中获取客户端的 IP 地址

如何从域名中找到托管服务提供商? [关闭]

使用Python收集获取Linux系统主机信息

在哪里托管定期运行的 Python 或 Java 服务?

使用Python收集获取Linux系统主机信息

java的servlet 不通过request能获取到服务器IP与提供的端口号吗。