【问题标题】:Does Python's urllib2 have a gethostbyname function?Python 的 urllib2 有 gethostbyname 函数吗?
【发布时间】:2011-04-06 18:24:09
【问题描述】:

我需要使用 urllib2 获取请求的主机的 IP 地址,例如:

import urllib2

req = urllib2.Request('http://www.example.com/')

r = urllib2.urlopen(req)

有ip = urllib2.gethostbyname(req)之类的函数吗?

【问题讨论】:

    标签: python urllib2 gethostbyname


    【解决方案1】:

    你可以使用:

    import socket
    socket.gethostbyname('www.google.com')
    

    这将返回主机的 IP 地址。不要传递'http://www.google.com'。那是行不通的。

    【讨论】:

      【解决方案2】:

      有一个 socket.gethostbyname 函数可以解析主机名,如果这就是你的意思。

      虽然如果你已经有urllib2 建立的连接,那么通过your_request.get_host() 获取目标主机。

      【讨论】:

      • 你没有。首先,您使用您拥有的开启程序创建请求,然后在该请求对象上调用 get_host。在您真正连接之前,您无法确定名称将解析到哪个 ip。
      • get_host 方法只返回一个链接而不是 IP 似乎我必须四处寻找其他问题。我想知道是否有任何方法可以使用代理获取远程网站 IP 地址?
      • 您无法真正知道代理连接到哪里。如果为您连接的名称分配了多个 ip,则会随机选择其中一个。
      猜你喜欢
      • 2017-03-07
      • 1970-01-01
      • 2012-12-07
      • 2015-01-09
      • 1970-01-01
      • 2018-01-19
      • 2013-01-27
      • 2011-03-05
      • 1970-01-01
      相关资源
      最近更新 更多