python - 如何在 Windows 中的 Python 3 中制定端口转发规则?

标签 python sockets batch-file portforwarding

<分区>

目的:

我正在制作一个程序,可以轻松地为游戏设置专用服务器(游戏开发人员制作的软件)。使服务器正常运行的一个常见步骤是通过在路由器上制定端口转发规则来进行端口转发。

多年来,我和我的 friend 们一直通过传统方式进行端口转发,结果喜忧参半。因此,我希望构建一个函数,在给定路由器的内部 ip、当前计算机的内部 ip、端口和协议(protocol)时转发路由器上的端口。我一直在寻找类似问题的解决方案,但我发现这些解决方案很难理解,因为我不太熟悉 socket 模块。我不想使用任何通常不安装在 Windows 上的程序,因为我计划让这个功能在我自己的系统以外的系统上运行。

我探索过的方法:

创建bat文件,通过netsh发出命令,然后运行bat。

在网络 -> 网络基础设施下找到的路由器中添加设置(我不知道如何以编程方式访问这些设置)。 (我知道 GameRanger 等程序会这样做)

使用套接字模块。

如果有人能阐明我如何完成上述任何方法,或者让我了解如何以另一种方式解决这个问题,我将不胜感激。

谢谢。

编辑:目的

最佳答案

您应该先阅读一些关于 UPnP(路由器端口转发)的信息,它通常是禁用的。

根据您的需要,您还可以尝试查看 ssh 反向隧道和 ssh,因为它可以解决很多问题。
但是你会发现使用 Windows 和高级网络之类的东西是一个坏主意。
至少你应该使用cygwin。

当您真正对网络流量感兴趣时,应该安装 wireshark。

关于python - 如何在 Windows 中的 Python 3 中制定端口转发规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38931064/

相关文章:

node.js - ReactJS + Socket.IO - 处理套接字连接的最佳方式

python - 如何删除类似的 alembic 版本?

python通过套接字发送不完整的数据

python - 使用 tkinter 和类创建多个不同颜色的形状

C套接字程序错误

batch-file - 尝试从批处理文件运行VBS MsgBox

windows - 批处理脚本 : Why does this print "= instead of the empty string?

java - System.exit(int code) 和 Runtime.getRuntime().exit(int code) 的区别

python - 如何在基于 Django 类的 View 中显示使用另一个模型的外键的注释?

python - zip(*) 是如何生成 n-gram 的?