我正在尝试过滤Google电子表格中的一些粗俗文本,并仅提取IP地址并存储它们,以便以后进行比较。 IE用户放入
"Summary: unauthorized ms-rdp traffic
Notes: SRC_IP: 211.238.202.137 91.212.144.2 92.66.145.194 121.229.128.42 81.162.195.34 81.88.125.86 213.42.28.188 85.21.42.240 94.56.89.117 177.55.40.14 219.69.14.40
SRC_Port:
SRC_Country: US KR IL CN CZ AE RU BR TW
DST_IP: MANY
DST_Port:
DST_Country: US
Campus_Agency:"
该脚本将存储所有scr_ip地址,如果需要,用户可以键入211.238.202.137之类的IP地址,并且该脚本将返回一条语句,以验证IP是否在列表中。我尝试过if语句,但是没有运气,我一直在尝试不同的变体,我认为这只是我技能的一部分。我最近来的是它拉了IP地址,但按值对它们进行了排序,因此它们与原始地址不匹配
最佳答案
快速的正则表达式,提取所有类似于ip地址的文本:
import re
ipaddress = re.compile(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')
addresses = ipaddress.findall(inputtext)
if '211.238.202.137' in addresses:
print 'We have a match!'
对于您的示例文本,
.findall()
调用返回:>>> ipaddress.findall(inputtext)
['211.238.202.137', '91.212.144.2', '92.66.145.194', '121.229.128.42', '81.162.195.34', '81.88.125.86', '213.42.28.188', '85.21.42.240', '94.56.89.117', '177.55.40.14', '219.69.14.40']