[英]Request from different IP addresses
我想使用urllib2並從其他IP地址發出請求。
我已經檢查過了,但是我沒有運氣: Python和urllib2的源接口
來自鏈接的代碼:
class BoundHTTPHandler(urllib2.HTTPHandler):
def __init__(self, source_address=None, debuglevel=0):
urllib2.HTTPHandler.__init__(self, debuglevel)
self.http_class = functools.partial(httplib.HTTPConnection,
source_address=source_address)
def http_open(self, req):
return self.do_open(self.http_class, req)
# test
handler = BoundHTTPHandler("192.168.1.1", 0)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
urllib2.urlopen("http://google.com/").read()
錯誤:TypeError: init ()獲得了意外的關鍵字參數“ source_address”
在使用urllib2之前,我將如何運行此代碼?
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
那么您有了bound_socket函數,那又如何呢?
編輯我不相信我的python版本支持source_address,這就是為什么我收到錯誤消息。
因此,讓我們嘗試套接字代碼。
代碼socket.socket = bound_socket
影響是,一旦你運行它的任何模塊后 ,全球范圍內運行,即,所有的代碼; 您無需執行其他任何操作。
httplib.HTTPConnection
類有source_address
在Python 2.7的參數 ,因此你的BoundHTTPHandler
也應該工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.