0

我有一个包含以前的 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
4

0 回答 0