我有一个包含以前的 tcpdump 的文件,因此该文件具有以下格式的行:
17:20:03.867998 IP 23.222.75.204.443 > 192.168.0.15.51773: Flags [.], ack 518, win 916, options [nop,nop,TS val 303057114 ecr 43022775], length 0
17:20:03.870231 IP 209.148.192.43.80 > 192.168.0.15.60174: Flags [.], seq 1:1449, ack 511, win 486, options [nop,nop,TS val 1840008838 ecr 43022779], length 1448
我的函数只是提取每一行中的特定字符串(源地址和目标地址)并打印出来。奇怪的是它可以工作(应该打印的所有东西都可以)但最后我得到了一个错误。
这是我的代码:
def parse_file() :
try :
file_object = open("tcp_dump","r")
for x in file_object.readlines() :
source_ip=x.split("IP ")[1].split(" >")[0]
dest_ip=x.split("> ")[1].split(": Flags")[0]
print(source_ip)
print(dest_ip)
file_object.close()
except IOError :
print("The specified file could not be found/accessed")
parse_file()
这是输出:
23.222.75.204.443
192.168.0.15.51773
209.148.192.43.80
192.168.0.15.60174
Traceback (most recent call last):
File "./test", line 26, in <module>
parse_file()
File "./test", line 15, in parse_file
source_ip=x.split("IP ")[1].split(" >")[0]
IndexError: list index out of range