首先,我为自己在这件事上是个笨蛋而道歉。我有下面的代码打开一个CSV文件并读取它。我试图只返回在名为“Source IP/Details”的字段中包含公共IP地址的行,以及我知道正在工作的行['Status']字段。我有什么我相信是一个正确的正则表达式,但我不确定我做的搜索正确。另外,我不确定在下面的for语句中是否正确设置了变量
ipRegex = '\b(?!(10)|192\.168|172\.(2[0-9]|1[6-9]|3[0-2]))[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
with open('whois.csv') as csvDataFile:
csvReader = csv.DictReader(csvDataFile)
rows = [row for row in csvReader if row['Status'] != "Closed" and row['Status'] != "Resolved"] and row['Source IP / Details'] == re.search(ipRegex, row['Source IP / Details'])]
for row in rows:
case = row['Case Number']
ipaddr = row['Source IP / Details']
以下是我的数据示例:
Case Number,Status,Date/Time Opened,_BATCH_ID_,_BATCH_LAST_RUN_,Alert Source,Alert Subtype,Source IP / Details,
2926,Closed,2015-10-29T11:54:00,2130,2017-10-30T22:48:02,Sophos,[MEDIUM] Alert for Sophos Cloud: A computer does not comply with its Cloud po...,,
7733,Closed,2015-11-18T13:46:00,2130,2017-10-30T22:48:02,Dell SecureWorks,Malicious Network Activity,216.30.178.102,
7818,Closed,2015-11-18T20:58:00,2130,2017-10-30T22:48:02,Dell SecureWorks,Application-Specific Exploits GNU Bash Environment Variable Code Injection attempt(s),,
7850,Closed,2015-11-18T21:47:00,2130,2017-10-30T22:48:02,Dell SecureWorks,Vulnerability Scanning,173.166.95.81,
在查找匹配项时,需要检查
is not None
。此外,正如你在评论中所说,你的表达有错误。我将最后一行更改为Open
,以生成一个结果:这就产生了
相关问题 更多 >
编程相关推荐