7

Is there a managed class/method that would provide the TCP port number(s) used by a particular Windows processes?

I'm really looking for a .NET equivalent of the following CMD line:

netstat -ano |find /i "listening"

2 Answers 2

15

Except for PID, take a look this:

IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties();

IPEndPoint[] endPoints = ipProperties.GetActiveTcpListeners();
TcpConnectionInformation[] tcpConnections = 
    ipProperties.GetActiveTcpConnections();

foreach (TcpConnectionInformation info in tcpConnections)
{
    Console.WriteLine("Local: {0}:{1}\nRemote: {2}:{3}\nState: {4}\n", 
        info.LocalEndPoint.Address, info.LocalEndPoint.Port,
        info.RemoteEndPoint.Address, info.RemoteEndPoint.Port,
        info.State.ToString());
}
Console.ReadLine();

Source: Netstat in C#

A bit more research bring this: Build your own netstat.exe with c#. This uses P/Invoke to call GetExtendedTcpTable and using same structure as netstat.

Sign up to request clarification or add additional context in comments.

4 Comments

And to get also the PID?
Link to "Build your own netstat" is broken. @Konamiman's comment has a working link: timvw.be/2007/09/09/build-your-own-netstatexe-with-c
Site still online, just more a dot: timvw.be/2007/09/09/build-your-own-netstat.exe-with-c But it works with WinAPI
2

See here for an equivalent of netstat in C#: http://towardsnext.wordpess.com/2009/02/09/netstat-in-c/

Update: Link is broken, but here's an equivalent: http://www.timvw.be/2007/09/09/build-your-own-netstatexe-with-c

Update: The original page has been archived at the Wayback Machine.

2 Comments

Page was not found :(

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.