簡體   English   中英

來自不同IP地址的請求

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM