gpt4 book ai didi

python-3.x - 使用 Python 读取和打印 PCAP

转载 作者:行者123 更新时间:2023-12-04 10:02:56 24 4
gpt4 key购买 nike

这是学校作业
对 Python 比较陌生,需要一些帮助。我需要读取 PCAP 文件,并将源 IP 和目标 IP 打印到新文件中。我不允许使用正则表达式,我不能一次读取整个文件,而且我必须使用循环、函数(必须接受一个参数并返回一个值)、拆分,并且列表和 IP 都是 IPv4 格式。

类对于这个问题来说太复杂了吗?
编辑:到目前为止我在哪里:下面执行的搜索正在提取错误的 IP。有人建议我通过查找来搜索
编号 时间 源 目的地 协议(protocol)

然后从它下面的行打印IP。我正在研究如何根据 XXX.XXX.XXX 格式进行过滤,并将让您知道它是如何进行的 :)

def pcapreader():

#open the file and print each line using readlines to a variable
#must replace file path with your present file location


with open (r"filepath", "r") as f:
f1=f.readlines()
for x in f1:
if "Internet Protocol Version 4, Src:" in x:
ips = x.split("Src: ")[1].split(",")
src = ips[0]
dst = ips[1].split("Dst: ")[1]
print("Src: {}\nDst:{}".format(src, dst))

f.close()

def main ():

pcapreader()


main()


我附上了我需要阅读的 PCAP 样本。 enter image description here

任何帮助,将不胜感激!非常感谢! :)

最佳答案

您阅读的其中一行将包含 Internet Protocol Version 4, Src:然后是源,然后是目的地。

因此,对于该行,您可以执行以下操作:

>>> ips = "Internet Protocol Version 4, Src: 192.168.1.180, Dst: 239.255.255.250"
>>> ips = ip.split("Src: ")[1].split(",")
>>> ips
['192.168.1.180', ' Dst: 239.255.255.250']
>>> src = ips[0]
>>> dst = ips[1].split("Dst: ")[1]
>>> src
'192.168.1.180'
>>> dst
'239.255.255.250'

该行被命名为 ips在示例中,然后从中提取源和目标。

编辑:

您可以像这样在代码中应用它:
with open (r"filepath", "r") as f:
f1=f.readlines()
for x in f1:
if "Internet Protocol Version 4, Src:" in x:
ips = x.split("Src: ")[1].split(",")
src = ips[0]
dst = ips[1].split("Dst: ")[1]
print("Src: {}\nDst:{}".format(src, dst))
break

希望这会帮助你。

添加 :
对于最后一次编辑,如果您想要 Time Source ... 下面的行中的数据您可以执行以下操作:
with open (r"filepath", "r") as f:
f1=f.readlines()
flag = False
for x in f1:
if "No.\tTime\tSource" in x:
flag = True
continue

if flag:# This will be executed just at the line after No.\tTime\tSource...
src = x.split("\t")[3]
dst = x.split("\t")[4]
print("Src: {}\nDst: {}".format(src, dst))
flag = False

注意:我假设每个字符串之间将是\t,如果它不起作用,那么您可能需要添加一些空格或执行类似的操作

另一个注意事项:当您使用 with 时语句打开文件,你不需要尝试关闭该文件,它会自动关闭。可以看 this article了解更多信息

关于python-3.x - 使用 Python 读取和打印 PCAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61748049/

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