我正在尝试获取IP日志列表( CSV格式),删除所有重复的地址,然后将其分割为单独的八位字节,并将其存储在列表中。我将最终添加检查子网重复(同一子网中的相同ip ),但我被困在这里。CSV文件中有额外的信息,但我已经很长时间没有编码了,所以我现在主要只关注IP。我不在乎我会不会丢失剩下的信息。
我最初尝试设置字符块(例如,取字符0-2为第一位,4-6为第二位,以此类推)但如果八位字节少于3位,这显然不起作用。然后我尝试使用re.split来拆分八位字节,但是它说它不接受字符串(由于某种原因)。然后,我尝试了当前代码中的内容,但使用了blah=int(fin.append(lst[each].re.split(r".",int)))
,但由于intiger中的句号,这将不起作用。
import pandas
import re
#set column names and input the data
colnames = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven']
data = pandas.read_csv(r'C:\Users\xxx\Desktop\Projects\Find the IPs\tiny version.csv', names=colnames)
#tell which column to read from then put in list called "lst"
ip = data.five.tolist()
lst = list(dict.fromkeys(ip))
#create final list
fin = []
#for every entry in lst, split it up at the periods, then add it to fin
for each in lst:
print("I got here")
blah = lst([each]).re.split(r".",int)
fin.append(blah)
现在,我希望有一个列表,每个条目都包含所有四个八位字节作为整数。
发布于 2019-05-16 05:33:01
如果您需要将ip地址拆分为单独的八位字节,请尝试以下操作:
ip = '192.168.1.70'
v = [int(x) for x in ip.split('.')]
print(v)
输出:
[192, 168, 1, 70]
https://stackoverflow.com/questions/56157394
复制相似问题