如何在Python中将IP地址绑定到telnetlib

发布于 2024-08-24 16:10:27 字数 269 浏览 8 评论 0原文

下面的代码将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?

The code below binds an ip address to 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

Is it also able to bind an ip address to telnetlib?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北斗星光 2024-08-31 16:10:27

telnetlib 至少在最近的 Python 版本中使用 socket.create_connection (请参阅 telnetlib 的源代码 这里),但这也应该被你的monkeypatch捕获(来源此处 - 您会看到它使用裸标识符 socket 但这正是您正在猴子修补的模块中)。当然,monkeypatching 总是非常脆弱(未来版本中最微小的优化,在 create_connection 中提升 socket 的全局查找,然后你就完蛋了……;-)所以也许你会想直接使用 Monkeypath create_connection 作为一种稍微更强的方法。

telnetlib at least in recent Python releases uses socket.create_connection (see telnetlib's sources here) but that should also be caught by your monkeypatch (sources here -- you'll see it uses a bare identifier socket but that's exactly in the module you're monkeypatching). Of course monkeypatching is always extremely fragile (the tiniest optimization in some future release, hoisting the global lookup of socket in create_connection, and you're toast...;-) so maybe you'll want to monkeypath create_connection directly as a modestly-stronger approach.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文