我需要提取某个应用程序用于接收和/或发送数据的IP,是否有任何工具或软件可以为我完成此操作?或无需深入研究应用程序调用的任何简单方法?

#1 楼

Linux

正如正确地提到@ Nirlzr,netstat -ape | grep <proc_name/pid>将向您显示进程的活动连接。它可能对您来说就足够了,但是在某些情况下是不行的。

netstat有一些盲点-它仅显示特定时间点的连接。因此,显然不会显示快速关闭的连接以及执行netstat之前或之后关闭的每个连接。

一个解决方案是使用strace,它可以帮助您监视进程创建的连接。

要启动进程并监视其连接:strace -f -e trace=network -s 10000 <process [arg1] [arg2] [...]>

要监视已经存在的进程:strace -p <pid> -f -e trace=network -s 10000,如果您不知道其PID,请使用pidof <processname>

,然后使用grep魔术只打印IP地址:strace -f -e trace=network <process [args...]> 2>&1 | grep -oP 'connect.*inet_addr\("\K[^"]+'


Windows

在Windows中,您还可以通过netstat使用Get-NetTCPConnectionpowershell的改进版本。但是两者都有前面提到的盲点。

推荐的两个解决方案是:



Microsoft的网络监视器

Nirsoft的TcpLogView

两者都有能力在打开时监视连接,并带有漂亮的GUI来显示它。

评论


Network Monitor只是做了我需要的事情,它首先将源地址显示为“网站”地址,例如“ something.address1.net”,但是随后在单击它时搜索了它提供的信息,所以我设法找到了IP地址和港口,那就是我所需要的

–布鲁诺·塞克(Bruno Cerk)
17年8月7日在5:10

这真的很有帮助,我确定从现在开始我将大量使用该软件

–布鲁诺·塞克(Bruno Cerk)
17年8月7日在5:11

#2 楼

由于OP的回答在细节上有点低,因此我假设使用Linux和Dynamic IP。这通常包括用于现有连接的IP地址和端口。如果要列出Linux上的现有连接及其拥有的进程,请运行netstat命令。

通过提供一些命令行参数,您可以获得所需的信息,始终建议您查阅手册页,但对于您运行netstat -ape的特定情况,以列出其pid和用户名的所有连接。

评论


在Windows上,它是netstat -n -b

–Y M
17年8月4日在17:33

它的Windows,但非常感谢,我会研究一下

–布鲁诺·塞克(Bruno Cerk)
17年8月4日在17:46