Su CodeProject trovi proprio quello che ti serve con tanto di sorgente:
http://www.codeproject.com/vb/net/netstat.asp
Oppure puoi anche andare di manina: (scusa ma io uso C#, in questi casi è piu' pulito di VB.NET) ma non è difficile convertire il tutto.
codice:
static void Main(string[] args)
{
Console.WriteLine("Active Connections");
Console.WriteLine();
Console.WriteLine(" Proto Local Address Foreign Address State PID");
foreach (TcpRow tcpRow in ManagedIpHelper.GetExtendedTcpTable(true))
{
Console.WriteLine(" {0,-7}{1,-23}{2, -23}{3,-14}{4}", "TCP", tcpRow.LocalEndPoint, tcpRow.RemoteEndPoint, tcpRow.State, tcpRow.ProcessId);
Process process = Process.GetProcessById(tcpRow.ProcessId);
if (process.ProcessName != "System")
{
foreach (ProcessModule processModule in process.Modules)
{
Console.WriteLine(" {0}", processModule.FileName);
}
Console.WriteLine(" [{0}]", Path.GetFileName(process.MainModule.FileName));
}
else
{
Console.WriteLine(" – unknown component(s) –");
Console.WriteLine(" [{0}]", "System");
}
Console.WriteLine();
}
Console.Write("{0}Press any key to continue…", Environment.NewLine);
Console.ReadKey();
}