0

我正在使用 urllib2 使用代理服务器发出 http 请求,如何在发出类似于 curl 的请求时使用源接口 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")
4

1 回答 1

0

有一个类似的答案可能对您有所帮助。无需在此处粘贴答案,但基本上 API 不会给您任何钩子,因此您必须深入 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 

我希望我已经理解了你的问题。

于 2012-04-04T16:52:00.643 回答