C# 根据进程 ID 查找本地/远程地址

发布于 2024-11-06 11:34:12 字数 252 浏览 2 评论 0原文

我使用 deviare API 来帮助我找出当前在桌面上运行的进程的 PID。谁能指导我或启发我如何根据我拥有的 PID 获取本地/远程 IP 地址及其端口号? (我应该使用什么 API?)

我想要这样的东西:

Public ArrayList GetRemoteAdder(int PID)
{
  return remoteAddr;
}

我想根据我拥有的 PID 检索进程正在访问的远程 IP 地址。

I've used deviare API to help me find out the PIDs of the processes that are currently running on my desktop. Could anyone kindly guide me or enlighten me on how to get the local/remote IP address as well as their port numbers base on the PID I have? (What API should I make use of?)

I want something like this:

Public ArrayList GetRemoteAdder(int PID)
{
  return remoteAddr;
}

I want to retrieve the remote IP Address that a process is accessing base on the PID that i have.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

森罗 2024-11-13 11:34:12

可能不是最好的方法,但一种快速的方法:

调用 netstat -n -o 并解析输出。通过 P/Invoke 求助于 Win32 魔法来做到这一点可能是一个更好的主意,但是您的用例(以及调用的频率......对于一次性的事情可能已经足够好了)尚不清楚。

这个签名对我来说也没有多大意义:GetRemoteAdder() 会返回什么?每个进程都可以轻松地侦听多个端口或打开一堆传出连接,因此单个字符串可能没有帮助。

Probably not the nicest way, but a quick one:

Call netstat -n -o and parse the output. It might be a better idea to resort to Win32 magic to do that via P/Invoke, but your usecase (and the frequency of the call.. For a one-time thing it might be good enough) is not clear.

The signature doesn't make a lot of sense to me either: What would GetRemoteAdder() return? Every process can easily listen on multiple ports or open a bunch of outgoing connections, so a single string is probably not going to help.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文