我已經有一些c#代碼映射進程到IP地址,我基本上試圖寫一些軟件,將看看一個進程,並給我的IP地址,以便我可以寫一個監視器將允許朋友找到遊戲。GetExtendedUdpTable和遠程IP地址
當運行我的應用程序,雖然它檢測到遊戲進程有UDP連接,但我似乎無法獲得IP地址。
我運行了packetniffer和78.111.229.123:32000顯示在路由器/網關上,但它沒有顯示在我的應用程序中。
任何想法讓我啓動並運行?
我已經有一些c#代碼映射進程到IP地址,我基本上試圖寫一些軟件,將看看一個進程,並給我的IP地址,以便我可以寫一個監視器將允許朋友找到遊戲。GetExtendedUdpTable和遠程IP地址
當運行我的應用程序,雖然它檢測到遊戲進程有UDP連接,但我似乎無法獲得IP地址。
我運行了packetniffer和78.111.229.123:32000顯示在路由器/網關上,但它沒有顯示在我的應用程序中。
任何想法讓我啓動並運行?
你是如何在遊戲應用程序中設置套接字的?你能發佈一個你的套接字設置代碼的例子嗎?
創建套接字時是否使用通配符地址和端口?我在猜測,如果你的遊戲應用沒有明確地綁定到特定的IP地址和端口,那可能是你的問題的根源。
另一個問題:你是否嘗試檢測本地IP地址,遠程IP地址或兩者?
如果您嘗試檢測遠程IP地址,這可能是不可能的,除非遊戲應用程序使用所謂的connected UDP sockets。這是客戶端應用程序調用在UDP套接字上連接的位置,以便在底層操作系統中的本地套接字和遠程套接字之間創建關聯。這具有上述鏈接中列出的某些優點和缺點。
編輯
看看這個SO職位:PID from socket number on Windows?
這幾乎證實了我以爲 - 除非遊戲是使用連接的UDP套接字,那麼你就可以的唯一途徑通過數據包嗅探獲取遠程地址。
啓動遊戲並運行netstat -ap UDP
- 如果您看到沒有列出任何遠程地址,則會確認上述懷疑。
遊戲是4號任務,即時嘗試檢測服務器很像xfire一樣。我正在嘗試檢測遠程IP地址。 – RubbleFord 2009-09-13 10:35:00
你唯一的選擇可能是數據包嗅探 - 我認爲這就是xfire正在做的事情。看到我上面的評論。 – 2009-09-13 17:30:37