Python-拆分src IP,src端口,dest IP,dest端口并创建字典

时间:2014-10-23 01:45:15

标签: python file text dictionary split

所以我打开了我的文件并使用readlines()模块将每一行拆分成一个列表,但我试图从readlines()中获取每个源IP,src端口,dest IP和dest端口。基本上我被要求做的是:"打开提供的转储文件并拆分src和dest IP以及sr​​c和dest端口"的每一行。此外,"创建一个名为Hosts的字典;主机的密钥将是从文件解析的IP(src和dest)。每个键的值将是一个两元素列表,其中第一个项目是IP是源的次数,秒是IP是目标的次数"。

以下是已解析文件的一部分......

08:43:56.558781 IP 192.168.233.128.56779 > 50.116.53.73.80: Flags [S], seq 3055452145, win    29200, options [mss 1460,sackOK,TS val 82505 ecr 0,nop,wscale 10], length 0
08:43:56.592590 IP 50.116.53.73.80 > 192.168.233.128.56779: Flags [S.], seq 1586785220, ack 3055452146, win 64240, options [mss 1460], length 0
08:43:56.592688 IP 192.168.233.128.56779 > 50.116.53.73.80: Flags [.], ack 1, win 29200, length 0
08:43:56.700460 IP 192.168.233.128.56779 > 50.116.53.73.80: Flags [P.], seq 1:300, ack 1, win 29200, length 299
08:43:56.701082 IP 50.116.53.73.80 > 192.168.233.128.56779: Flags [.], ack 300, win 64240, length 0
08:43:57.034951 IP 50.116.53.73.80 > 192.168.233.128.56779: Flags [P.], seq 1:1395, ack 300, win 64240, length 1394
08:43:57.034976 IP 192.168.233.128.56779 > 50.116.53.73.80: Flags [.], ack 1395, win 32062, length 0
08:43:57.118796 IP 192.168.233.128.56780 > 50.116.53.73.80: Flags [S], seq 3778524509, win 29200, options [mss 1460,sackOK,TS val 82645 ecr 0,nop,wscale 10], length 0

仅供参考,文件的格式如下:

IP(source.Sourceport)> (dest.Destport)

这是我到目前为止所做的:

import os

while True:
try:
    f = open(os.path.expanduser("~/Documents/Pys/ascii_dump.txt"))
    print ("It Opened!")
    break
except:
    print ("Cannot Open!")
    break

lines = f.readlines()

UPDATE 现在我正在寻找将一个字符串(一行)拆分为另一个字符的最佳方法。所以说把它分成一个":"到下一个":"。

1 个答案:

答案 0 :(得分:0)

我认为您需要查看字符串的拆分方法

f = open('data.txt', 'r')
lines = f.read()
lines = lines.split("\n")
print(lines)
for line in lines:
    line = line.split()
    if len(line) > 0:
        srcIp = line[2]
        dstIp = line[4]
        print(srcIp.split('.'),dstIp.split('.'))

给出:

['192', '168', '233', '128', '56779'] ['50', '116', '53', '73', '80:']
['50', '116', '53', '73', '80'] ['192', '168', '233', '128', '56779:']
['192', '168', '233', '128', '56779'] ['50', '116', '53', '73', '80:']
['192', '168', '233', '128', '56779'] ['50', '116', '53', '73', '80:']
['50', '116', '53', '73', '80'] ['192', '168', '233', '128', '56779:']
['50', '116', '53', '73', '80'] ['192', '168', '233', '128', '56779:']
['192', '168', '233', '128', '56779'] ['50', '116', '53', '73', '80:']
['192', '168', '233', '128', '56780'] ['50', '116', '53', '73', '80:']