2010-03-14 84 views
1
到telnetlib

下面的代碼綁定一個IP地址的urllib,urllib2的等如何綁定一個IP地址在Python

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 

是不是還能夠將IP地址綁定到telnetlib?

回答

2

telnetlib至少在最近的Python版本使用socket.create_connection(見telnetlib的來源here),但也應該由你的猴補丁抓住(來源here - 你會看到它採用的是把裸socket但是這確實是在模塊中你'monkeypatching)。當然,monkeypatching總是非常脆弱(在未來版本中最小的優化,在create_connection中提升socket的全局查找,並且你要烤麪包...... ;-)所以,也許你會想直接將monkeysypath create_connection作爲一個謙虛 - 更強的方法。