我目前正在编写一个C#程序,它具有与wireshack类似的功能,使用SharpPcap捕获数据包并使用PacketDotNet获取有关数据包的信息。我想知道如何获得与数据包关联的进程的名称?SharpPcap获取进程名称
1
A
回答
2
您可以通过从netstat -o
解析输出得到ProcessId
然后从Process.GetById
得到进程名。
可能是这样的代码将是有益的,但我不是很强劲,正则表达式:)
var proc = new Process {
StartInfo = new ProcessStartInfo {
FileName = "netstat",
Arguments = "-on",
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
}
};
proc.Start();
Regex r = new Regex(@"\S+\s+(?<address>\S+)\s+\S+\s+\S+\s+(?<pid>\d+)");
while (!proc.StandardOutput.EndOfStream) {
var res = r.Match(proc.StandardOutput.ReadLine());
if (res.Success) {
var pid = int.Parse(res.Groups["pid"].Value);
var address = res.Groups["address"].Value;
Console.WriteLine("{0} - {1}", address, Process.GetProcessById(pid).ProcessName);
}
}
+0
这真的是唯一的选择吗?在确定哪个浏览器正在使用端口80时,我不认为这会工作得很好? – Nuzzolilo 2014-03-20 04:48:00
+0
不能肯定地说,但我认为你也可以尝试使用[TcpView](http://technet.microsoft.com/en-US/sysinternals/bb897437.aspx),它具有图形界面和命令行工具与netstat非常相似 – user20140268 2014-03-21 10:53:58
相关问题
- 1. Sharppcap - 如何获取traffiqued文件名?
- 2. 从进程名称获取应用程序名称
- 3. 如何从进程名称获取应用程序名称?
- 4. 通过PID获取进程名称
- 5. 获取进程名称窗口标题名称和安装的软件名称
- 6. 从进程ID获取进程名称(win32)
- 7. 如何从进程名称获取进程ID?
- 8. 从进程ID获取进程可执行文件名称
- 9. 按进程名称获取进程句柄
- 10. 获取程序集名称
- 11. 如何从android中的进程获取应用程序名称?
- 12. Volume Mixer - 获取应用程序名称及其进程ID
- 13. 如何在Windows中获取进程的应用程序名称?
- 14. 如何获取应用程序的进程名称?
- 15. 如何获取所有线程ID和进程的名称
- 16. Coldfusion进程名称
- 17. 如何通过在mac os上了解进程名称来获取进程?
- 18. 按名称获取
- 19. 如何从PID使用C获取进程名称
- 20. 获取进程名称,从netstat命令,而SunOS
- 21. 按名称获取正在运行的进程的路径
- 22. 我如何从进程ID获取服务的名称?
- 23. AppleScript:从应用隐藏/获取进程名称
- 24. 从pid或句柄获取进程名称
- 25. 获取当前进程中所有句柄的名称
- 26. linux在内核中从pid获取进程名称
- 27. 如何在Mac OS上按名称获取进程?
- 28. C++获取Windows标题使用进程名称
- 29. Linux/Bash,使用ps -o按特定名称获取进程?
- 30. 如何获取C#中的开放端口的进程名称?
请包括一些示例代码,以帮助解释的问题! – PearsonArtPhoto 2013-03-10 11:32:18