Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python收集所有入站TCP流量_Python_Networking - Fatal编程技术网

使用python收集所有入站TCP流量

使用python收集所有入站TCP流量,python,networking,Python,Networking,我正在尝试创建一个python linux脚本,用于侦听所有入站流量。我不想在一个端口上监听所有流量。任何正确方向的指示或指针都将不胜感激。非常感谢 这是使用python捕获数据包的唯一选项。虽然这个示例很短,但它确实演示了您可以捕获发送给系统的数据包并将其保存到PCAP。您可以做更多的工作来进一步过滤/操作这些数据包,但出于演示目的,这应该足以让您开始。此外,我正在将其安装到虚拟环境中,而不是安装到我的主系统中。这会导致权限的复杂性,但出于演示目的,我将以sudo的身份执行脚本。我不会在生产中

我正在尝试创建一个python linux脚本,用于侦听所有入站流量。我不想在一个端口上监听所有流量。任何正确方向的指示或指针都将不胜感激。非常感谢

这是使用python捕获数据包的唯一选项。虽然这个示例很短,但它确实演示了您可以捕获发送给系统的数据包并将其保存到PCAP。您可以做更多的工作来进一步过滤/操作这些数据包,但出于演示目的,这应该足以让您开始。此外,我正在将其安装到虚拟环境中,而不是安装到我的主系统中。这会导致权限的复杂性,但出于演示目的,我将以sudo的身份执行脚本。我不会在生产中这样做

让我们先为我们的项目创建一个虚拟环境:

python -m venv venv
现在让我们激活它:

source venv/bin/activate
现在让我们安装scapy:

pip install scapy
现在安装了scapy,让我们编写一个示例脚本来捕获一些发送到我的计算机10.1.10.127的数据包:

#! ./venv/bin/python
from scapy.all import sniff, PcapWriter

pkts = sniff(filter="dst 10.1.10.127", count=10)
my_pcap = PcapWriter('capture.pcap')
my_pcap.write(pkts)
my_pcap.close()
我们将把它保存在一个名为sniff_it.py的文件中。嗅探功能将捕获任何接口上发送给我的IP地址的前10个数据包。它将接收这些数据包并将它们写入名为capture.PCAP的PCAP文件。同样,您可以轻松地添加额外的数据包过滤/操作。您还可以构建一个循环,将每1000个数据包放入不同的PCAP中。让我们来测试一下

chmod u+x sniff_it.py
sudo ./sniff_it.py
捕获10个数据包后,应将其写入capture.pcap

tshark -r capture.pcap | head -n 5
1   0.000000 XXX.XXX.XXX.XXX → 10.1.10.127  QUIC 83 Payload (Encrypted), PKN: 38913
2   1.020419 XXX.XXX.XXX.XXX → 10.1.10.127  TCP 68 5228 → 46064 [ACK] Seq=1 Ack=1 Win=248 Len=0 TSval=1894173688 TSecr=2911532757
3   1.634172 XXX.XXX.XXX.XXX → 10.1.10.127  TCP 68 443 → 45268 [ACK] Seq=1 Ack=1 Win=36 Len=0 TSval=145613895 TSecr=3189134159
4   4.921444 XXX.XXX.XXX.XXX → 10.1.10.127  TCP 68 443 → 55626 [ACK] Seq=1 Ack=1 Win=325 Len=0 TSval=751056060 TSecr=3131256344
5   4.921498 XXX.XXX.XXX.XXX → 10.1.10.127  TCP 68 443 → 55626 [ACK] Seq=1 Ack=1397 Win=331 Len=0 TSval=751056060 TSecr=3131256349