2009-09-13 133 views
0

我已经有一些c#代码映射进程到IP地址,我基本上试图写一些软件,将看看一个进程,并给我的IP地址,以便我可以写一个监视器将允许朋友找到游戏。GetExtendedUdpTable和远程IP地址

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

我运行了packetniffer和78.111.229.123:32000显示在路由器/网关上,但它没有显示在我的应用程序中。

任何想法让我启动并运行?

回答

0

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

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

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

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

编辑

看看这个SO职位:PID from socket number on Windows?

这几乎证实了我以为 - 除非游戏是使用连接的UDP套接字,那么你就可以的唯一途径通过数据包嗅探获取远程地址。

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

+0

游戏是4号任务,即时尝试检测服务器很像xfire一样。我正在尝试检测远程IP地址。 – RubbleFord 2009-09-13 10:35:00

+0

你唯一的选择可能是数据包嗅探 - 我认为这就是xfire正在做的事情。看到我上面的评论。 – 2009-09-13 17:30:37