如何从CSV拆分IP地址的八位字节

时间:2019-05-15 20:47:02

标签: python csv

我正在尝试获取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)

现在,我希望找到一个列表,其中每个条目都包含所有四个八位字节作为整数。

1 个答案:

答案 0 :(得分:-1)

如果您需要将IP地址拆分为各个八位字节,请尝试以下操作:

ip = '192.168.1.70'

v = [int(x) for x in ip.split('.')]
print(v) 

输出:

[192, 168, 1, 70]
相关问题