Pergunta

O código a seguir liga um endereço IP para urllib, urllib2, etc.

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

É também capaz de ligar um endereço IP para telnetlib?

Foi útil?

Solução

telnetlib pelo menos em recente Python libera usos socket.create_connection (ver fontes de telnetlib aqui ), mas que também deve ser apanhado pelo seu monkeypatch (fontes aqui - você verá que ele usa uma socket identificador nua, mas isso é exatamente no módulo que você está monkeypatching). Claro monkeypatching é sempre extremamente frágil (a optimização mais ínfimo em algum lançamento futuro, içando a pesquisa global socket em create_connection, e você está frito ... ;-) então talvez você vai querer create_connection monkeypath diretamente como um modestly- abordagem mais forte.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top