2009-09-13 129 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