gpt4 book ai didi

python - 将 ip 地址绑定(bind)到 urllib2 对我不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:47 25 4
gpt4 key购买 nike

我是 urllib2 的新手。我尝试使用 urllib2 将 IP 地址绑定(bind)到 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>

最佳答案

您要求绑定(bind)到IP地址123.108.224.70对应的接口(interface)。如果您的机器上没有相应的接口(interface),则无法绑定(bind)套接字,并且您将看到错误。这是一个简化的示例:

>>> import socket
>>> s = socket.socket()
>>> s.bind(('123.108.224.70', 0))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 99] Cannot assign requested address

此操作失败,因为我没有与该 IP 地址的接口(interface),并且我怀疑您也有同样的情况 - 尝试一下。

您可以使用 ifconfig 查看与接口(interface)对应的 IP 地址。我怀疑 123.108.224.70 不存在。

否则,当我使用我的计算机上存在的 IP 地址时,我发现您的代码可以正常工作。

关于python - 将 ip 地址绑定(bind)到 urllib2 对我不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28047561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com