GetExtendedUdpTable和远程IP地址

时间:2009-09-13 09:23:56

标签: c# tcp udp

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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

修改

看一下这篇SO帖子:PID from socket number on Windows?

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

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