gpt4 book ai didi

python - 计算特定网络接口(interface)上的传入数据包

转载 作者:太空宇宙 更新时间:2023-11-03 13:39:28 25 4
gpt4 key购买 nike

我想计算特定时间段内(直到执行脚本后 5 分钟)网络接口(interface)(例如 eth0)上传入数据包的数量,如何通过 shell 或 python 脚本完成?哪个更准确?

我知道 iptraf 等网络工具,但我希望它通过脚本完成,最好在屏幕上或文件中打印计数值。

最佳答案

如果您使用的是 linux shell,您可以使用 tcpdump 来完成这项工作。 shell 中使用的大多数命令都预安装在大多数 linux 发行版中。

#!/bin/sh
# # # Run this as sudo
# # # Pass an argument of your IP address
# # $ Usage: sudo ./<nameOfTheScript> <IPofYourMachine>
# Parameters
captureTime=300


# Capture packets for X Seconds
tcpdump -i eth0 dst host $1 >> /dev/null 2> out &
pid=$!
sleep $captureTime
kill $pid

# Extract relevant data
cat out | tail -2 | head -1 | cut -d " " -f 1

# Cleaning up!
rm out

shell 运行 tcpdump 300 秒并终止它。 tcpdump 将您需要的数据输出到 stderr。这就是将该流重定向到文件的原因 (2> out)。 shell 的最后一秒命令从 tcpdump 抛出的完整消息中提取我们想要的数据。它需要作为 sudo 运行!也不要忘记根据需要修改监听接口(interface)。

如果我仍然不清楚我为什么要这样做,请告诉我!

关于python - 计算特定网络接口(interface)上的传入数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34231968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com