我正在使用 urllib2 使用代理服务器发出 http 请求,如何在发出类似于curl 的请求时使用源接口(interface) ipaddress
curl --interface xx.xx.xx.xx -x yy.yy.yy.yy:8080 www.google.com
#!/usr/bin/env python
import urllib2
proxy = urllib2.ProxyHandler({'http': 'xx.xx.xx.xx:8080'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
result = urllib2.urlopen('http://www.google.com')
for line in result:
print line.rstrip("\n")
最佳答案
有一个类似的答案,问题是 may help you 。没有必要在这里粘贴答案,但基本上 API 不会给你任何钩子(Hook),所以你必须深入 API 堆栈并修改源代码或猴子修补代码
import socket
true_socket = socket.socket
def bound_socket(*a, **k):
sock = true_socket(*a, **k)
sock.bind((sourceIP, 0))
return sock
socket.socket = bound_socket
我希望我能理解你的问题。
关于python curl urllib2 源接口(interface)地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10011613/