1

以下のコードは、IPアドレスをurllib、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

IPアドレスをtelnetlibにバインドすることもできますか?

4

1 に答える 1

2

telnetlib少なくとも最近のPythonリリースでは使用されていますがsocket.create_connection(telnetlibのソースはこちらを参照)、それはモンキーパッチでもキャッチされるはずです(ソースはこちら-裸の識別子を使用しているsocketことがわかりますが、モンキーパッチを適用しているモジュールに正確に含まれています)。もちろん、モンキーパッチは常に非常に壊れやすいので(将来のリリースで最も小さな最適化、inのグローバルルックアップを引き上げ、socket乾杯create_connectionします...;-) create_connection、適度に強力なアプローチとして直接モンキーパスを使用することをお勧めします。

于 2010-03-14T01:17:34.640 に答える