private ListViewItem InitTcpItem(TcpRecordPid tcprecord) { if (tcprecord == null) return null; ListViewItem item = new ListViewItem(tcprecord.LocalPort.ToString()); item.SubItems.Add(tcprecord.Protocol); item.SubItems.Add(tcprecord.LocalAddress.ToString()); item.SubItems.Add(tcprecord.RemoteAddress.ToString()); item.SubItems.Add(tcprecord.RemotePort.ToString()); item.SubItems.Add(tcprecord.State.ToString()); item.SubItems.Add(tcprecord.PID.ToString()); item.SubItems.Add(tcprecord.ProcessName); item.Name = tcprecord.GetHashCode().ToString(); return item; }
public static string FindProcessNameByTcpConnection(IPAddress sourceAddress, IPAddress destinationAddress, ushort sourcePort, ushort destinationPort, IPAddress localIP) { List <TcpRecordPid> tcpRecords = null; ushort port; IPAddress address; if (localIP == sourceAddress) { port = sourcePort; address = sourceAddress; } else { port = destinationPort; address = destinationAddress; } if ((tcpRecords = NetworkStatisticData.GetAllTcpConnections()) != null && tcpRecords.Count > 0) { TcpRecordPid record = tcpRecords.Where(r => r.LocalPort == port).SingleOrDefault(); if (record != null) { return(record.PID.ToString()); //if (record.PID == 0) // return "System"; //else //{ // Process proc = null; // if ((proc = FindProcessByPid(record.PID)) != null) // return proc.ProcessName; // else // return "N/A"; //} } } return(String.Empty); }