2012-02-02 16 views
3

如何確定什麼進程/什麼可執行文件正在使用,比如我的本地主機的端口80?我想知道的,例如,如果它是Apache服務器等如何檢查誰在C#中使用某個端口?

我們可以從一些ipProperties.GetActiveTcpListeners信息()?我只看到本地端點,遠程端點和狀態。

回答

5

可以通過管道的netstat -o輸出,並對其進行分析,但是這可能全頭痛和邊緣情況的一個可怕的想法。

在幕後,netstat -o使用IPHelper庫中的GetTcpTable2 API方法,該方法返回一個MIB_TCPTABLE2結構,每個端口由一個MIB_TCPROW2結構表示。你必須使用P/Invoke從C#訪問這個,建立表和行的互操作結構

檢查PInvoke.Net,我看到類似的API調用已經映射到C#-GetExtendedTcpTable - 它列出應用程序的可用TCP端口。您可以將其用作構建互操作結構和聲明的基礎。

相關問題