【发布时间】:2015-01-20 14:16:42
【问题描述】:
我是 urllib2 的新手。我尝试使用 urllib2 将 IP 地址绑定到 URL 请求,它不适用于 Tor 提供的 IP 地址。
import socks
import socket
import urllib2
true_socket = socket.socket
def make_bound_socket(source_ip):
def bound_socket(*a, **k):
sock = true_socket(*a, **k)
sock.bind((source_ip, 0))
return sock
return bound_socket
if __name__ == '__main__':
socket.socket = make_bound_socket('123.108.224.70')
print "IP address: from tor-",urllib2.urlopen('http://my-ip.herokuapp.com').read()
上面我提到的IP地址是从tor获取的。在此致谢
它给了我以下错误
Traceback (most recent call last):
File "socks_ppp.py", line 56, in <module>
newIdentity()
File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen
return _opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 404, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 422, in _open
'_open', req)
File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 1214, in http_open
return self.do_open(httplib.HTTPConnection, req)
File "/usr/lib/python2.7/urllib2.py", line 1184, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [Errno 99] Cannot assign requested address>
【问题讨论】:
标签: python binding urllib2 tor