连接urllib2后如何确定服务器的IP地址?

Par*_*hit 3 python ip-address urllib2

我正在使用urllib2从服务器下载数据.但我需要确定我连接的服务器的IP地址.

import urllib2
STD_HEADERS = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,
                    */*;q=0.8',
                'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
                'Accept-Language': 'en-us,en;q=0.5',
                'User-Agent': 'Mozilla/5.0 (X11; U; Linux x86_64;en-US;rv:1.9.2.12)     
                           Gecko/20101028 Firefox/3.6.12'}
request = urllib2.Request(url, None, STD_HEADERS)
data =  urllib2.urlopen(request)
Run Code Online (Sandbox Code Playgroud)

请不要让我使用URL找到IP地址,因为这不能保证从中下载数据的服务器和IP地址查询在"HTTPRedirects"或负载均衡服务器的情况下解析为相同的IP地址

小智 5

这是在Python 2.7上对我有用的东西:

>>> from urllib2 import urlopen
>>> from socket import fromfd
>>> from socket import AF_INET
>>> from socket import SOCK_STREAM
>>> r = urlopen('http://stackoverflow.com/')
>>> mysockno = r.fileno()
>>> mysock = fromfd( mysockno, AF_INET, SOCK_STREAM)
>>> (ip, port) = mysock.getpeername()
>>> print "got IP %s port %d" % (ip, port)
got IP 198.252.206.140 port 80
Run Code Online (Sandbox Code Playgroud)