识别正在传输icmp数据包的进程的PID

时间:2014-04-27 08:48:00

标签: icmp

我编写了一个程序,它将通过网络创建和传输icmp数据包。

现在,我想编写一个程序来识别正在传输icmp数据包的系统中的进程(PID)。如果我没有错,这些程序的可能输出将是我编码的先前程序的PID以及创建和传输icmp数据包的一些系统进程。

注意:我使用python进行编码,使用scapy进行数据包操作,使用PySide进行GUI(额外信息)我在VMWare中的Fedora 20中运行此程序。

编辑:我已经编写了另一个程序,它将生成数据包并将数据包发送到目的地。代码如下:

from scapy.all import *

while True:
    send(IP(dst = '192.168.0.101')/ICMP()/'This is a message')

我通过终端运行此程序并使用" ps -e"我发现pid是2046。 当我运行" lsof -p 2046"时,它会给我以下输出。

COMMAND  PID USER   FD   TYPE DEVICE  SIZE/OFF    NODE NAME
python  2263 root  cwd    DIR  253,1      4096  393217 /root
python  2263 root  rtd    DIR  253,1      4096       2 /
python  2263 root  txt    REG  253,1      6412 1312778 /usr/bin/python2.7
python  2263 root  mem    REG  253,1     40536  132769 /usr/lib/python2.7/lib-dynload/arraymodule.so
python  2263 root  mem    REG  253,1     76968  132773 /usr/lib/python2.7/lib-dynload/cPickle.so
python  2263 root  mem    REG  253,1    141376  132758 /usr/lib/python2.7/lib-dynload/_io.so
python  2263 root  mem    REG  253,1     21576  132804 /usr/lib/python2.7/lib-dynload/zlibmodule.so
python  2263 root  mem    REG  253,1     13336  132779 /usr/lib/python2.7/lib-dynload/fcntlmodule.so
python  2263 root  mem    REG  253,1     22348  132795 /usr/lib/python2.7/lib-dynload/selectmodule.so
python  2263 root  mem    REG  253,1     34952  132768 /usr/lib/python2.7/lib-dynload/_struct.so
python  2263 root  mem    REG  253,1     21976  132756 /usr/lib/python2.7/lib-dynload/_heapq.so
python  2263 root  mem    REG  253,1     50736  132784 /usr/lib/python2.7/lib-dynload/itertoolsmodule.so
python  2263 root  mem    REG  253,1     34068  132789 /usr/lib/python2.7/lib-dynload/operator.so
python  2263 root  mem    REG  253,1     29584  132747 /usr/lib/python2.7/lib-dynload/_collectionsmodule.so
python  2263 root  mem    REG  253,1     18708  132800 /usr/lib/python2.7/lib-dynload/timemodule.so
python  2263 root  mem    REG  253,1     16936  132774 /usr/lib/python2.7/lib-dynload/cStringIO.so
python  2263 root  mem    REG  253,1     32804  132767 /usr/lib/python2.7/lib-dynload/_ssl.so
python  2263 root  mem    REG  253,1     10768  132754 /usr/lib/python2.7/lib-dynload/_functoolsmodule.so
python  2263 root  mem    REG  253,1    169076 1313915 /usr/lib/liblzma.so.5.0.99
python  2263 root  mem    REG  253,1    437616 1314045 /usr/lib/libpcre.so.1.2.1
python  2263 root  mem    REG  253,1    140980 1324120 /usr/lib/libselinux.so.1
python  2263 root  mem    REG  253,1     14660 1313891 /usr/lib/libkeyutils.so.1.5
python  2263 root  mem    REG  253,1     52740 1311324 /usr/lib/libkrb5support.so.0.1
python  2263 root  mem    REG  253,1     89336 1314317 /usr/lib/libz.so.1.2.8
python  2263 root  mem    REG  253,1    103924 1314111 /usr/lib/libresolv-2.18.so
python  2263 root  mem    REG  253,1    217596 1311314 /usr/lib/libk5crypto.so.3.1
python  2263 root  mem    REG  253,1     14816 1313563 /usr/lib/libcom_err.so.2.1
python  2263 root  mem    REG  253,1    853160 1311323 /usr/lib/libkrb5.so.3.3
python  2263 root  mem    REG  253,1    296208 1311189 /usr/lib/libgssapi_krb5.so.2.2
python  2263 root  mem    REG  253,1   1875268 1310866 /usr/lib/libcrypto.so.1.0.1e
python  2263 root  mem    REG  253,1    414804 1311008 /usr/lib/libssl.so.1.0.1e
python  2263 root  mem    REG  253,1     75480  132765 /usr/lib/python2.7/lib-dynload/_socketmodule.so
python  2263 root  mem    REG  253,1     16892  132755 /usr/lib/python2.7/lib-dynload/_hashlib.so
python  2263 root  mem    REG  253,1 106070928 1320811 /usr/lib/locale/locale-archive
python  2263 root  mem    REG  253,1   2064488 1313517 /usr/lib/libc-2.18.so
python  2263 root  mem    REG  253,1    328148 1313917 /usr/lib/libm-2.18.so
python  2263 root  mem    REG  253,1     12836 1314239 /usr/lib/libutil-2.18.so
python  2263 root  mem    REG  253,1     17912 1313596 /usr/lib/libdl-2.18.so
python  2263 root  mem    REG  253,1    134608 1314076 /usr/lib/libpthread-2.18.so
python  2263 root  mem    REG  253,1   1659436 1314088 /usr/lib/libpython2.7.so.1.0
python  2263 root  mem    REG  253,1     14284  132764 /usr/lib/python2.7/lib-dynload/_randommodule.so
python  2263 root  mem    REG  253,1     23572  132771 /usr/lib/python2.7/lib-dynload/binascii.so
python  2263 root  mem    REG  253,1     30320  132786 /usr/lib/python2.7/lib-dynload/math.so
python  2263 root  mem    REG  253,1    150572 1313337 /usr/lib/ld-2.18.so
python  2263 root    0u   CHR  136,1       0t0       4 /dev/pts/1
python  2263 root    1u   CHR  136,1       0t0       4 /dev/pts/1
python  2263 root    2u   CHR  136,1       0t0       4 /dev/pts/1
python  2263 root    5u  sock    0,7       0t0   73120 protocol: UDP

1 个答案:

答案 0 :(得分:1)

我想你可以用lsof做到这一点。如果你ping主机然后运行

lsof -p <PID of process doing ping>

你可以看到它打开了一个类型为st = 07(例如)

的原始连接
ping    53988 rorym    3u   raw             0t0 137700 00000000:0001->00000000:0000 st=07

所以有一个程序在输出中查找该签名应该给你这个信息。一个粗略的例子可能是

sudo lsof -n | grep -i st=07

如果您运行该命令可能会得到答案,显示当前正在ping的内容...