我正在尝试获取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)
现在,我希望找到一个列表,其中每个条目都包含所有四个八位字节作为整数。
答案 0 :(得分:-1)
如果您需要将IP地址拆分为各个八位字节,请尝试以下操作:
ip = '192.168.1.70'
v = [int(x) for x in ip.split('.')]
print(v)
输出:
[192, 168, 1, 70]