我有一些c#代码将进程映射到ip地址,我基本上是在尝试编写一些软件来查看进程并给我ip地址,以便我可以编写一个可以让朋友使用的监视器找到游戏。

运行我的应用程序虽然它检测到游戏进程有UDP连接,但我似乎无法获取IP地址。

我运行了一个数据包niffer,78.111.229.123:32000显示在路由器/网关上,但它没有显示在我的应用程序中。

有什么想法让我开始运作?

有帮助吗?

解决方案

您如何在游戏应用程序中设置套接字?你能发布套接字设置代码的例子吗?

创建套接字时是否使用通配符地址和端口?我猜你的游戏应用程序没有明确地绑定到特定的IP地址和端口,这可能是你问题的根源。

另一个问题:您是否尝试检测本地IP地址,远程IP地址或两者?

如果你试图检测远程IP地址,除非游戏应用程序使用的是所谓的连接的UDP套接字。这是客户端应用程序调用UDP套接字上的连接以在底层操作系统中的本地和远程套接字之间创建关联的位置。这具有上述链接中列出的某些优点和缺点。

修改

看一下这篇SO帖子:来自Windows上套接字号的PID?

这几乎证实了我的想法 - 除非游戏使用连接的UDP套接字,否则你能够获得远程地址的唯一方法就是通过数据包嗅探。

启动游戏并运行 netstat -ap UDP - 如果您发现没有列出任何远程地址,则可以确认上述怀疑。

scroll top