2009-09-12 48 views
0

我想獲得一個進程在c#中連接到的ipaddress。是否有捷徑可尋?Windows進程和IP地址,它連接到

+0

我不確定你在問什麼。進程沒有連接,套接字是由進程創建的。你可以說得更詳細點嗎?你在尋找類似netstat工具和-b參數的東西嗎? – 2009-09-12 09:40:50

回答

3

有兩種方法來實現這一目標:

  1. 使用無證InternalGetTcpTableWithOwnerModule/InternalGetUdpTableWithOwnerModule/InternalGetTcp6TableWithOwnerModule/​​的API從IPHLPAPI.DLL出口。
  2. 運行netstat -b並解析輸出。

無論採用哪種方式,您都需要管理員權限,並且這兩種方式都會與不同的Windows版本分離。創建一個帶有記錄的API的Windows驅動程序是絕對有可能的,但這將是很多工作。

更新:

實際上有文件API太 - GetExtendedTcpTableGetExtendedUdpTable。另外還有一個article,它提供了一個如何從C#調用它的例子。

+0

這很好,雖然有問題的過程是使命召喚4,甚至當我在服務器上玩遊戲時,它也沒有出現在列表中,這有點令人困惑。 – RubbleFord 2009-09-12 12:37:02

+0

跟進,它甚至沒有出現在netstat -b – RubbleFord 2009-09-12 12:37:39

+0

你知道哪個協議是使用Call for Duty進行網絡連接嗎? netstat -a -b顯示它嗎? – 2009-09-12 13:02:38