Domanda

Il codice di seguito si lega un indirizzo IP al urllib, urllib2, ecc.

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

E 'anche in grado di legare un indirizzo IP al telnetlib?

È stato utile?

Soluzione

telnetlib almeno nelle versioni più recenti di Python utilizza socket.create_connection (vedi fonti di telnetlib qui ) ma che dovrebbe anche essere catturati dal vostro monkeypatch (fonti qui - vedrete che utilizza un identificatore socket spoglia ma questo è esattamente nel modulo che stai monkeypatching). Naturalmente monkeypatching è sempre estremamente fragile (l'ottimizzazione più piccolo in un futuro rilascio, issare la ricerca globale di socket in create_connection, e si sta brindisi ... ;-) così forse ti consigliamo di monkeypath create_connection direttamente come modestly- approccio più forte.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top