2010-03-14 6 views
1

Le code ci-dessous lie une adresse IP à urllib, urllib2, etc.Comment lier une adresse IP à telnetlib en 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 

Est-il capable de se lier une adresse IP à telnetlib?

Répondre

2

telnetlib au moins dans les versions récentes de Python utilise socket.create_connection (voir les sources de telnetlib here) mais qui devrait également être pris par votre monkey-patch (sources here - vous verrez qu'il utilise un identifiant nu socket mais c'est exactement dans le module 'est monkeypatching). Bien sûr monkeypatching est toujours extrêmement fragile (la plus petite optimisation dans une future version, hissant la recherche globale de socket en create_connection, et vous êtes toast ... ;-) alors peut-être que vous voudrez monkeypath create_connection directement comme modestement- approche plus forte.