我正在尝试将列表与字符串文本进行比较,并打印与列表中的元素匹配的行
我尝试了以下代码,但获取的 IP 地址不在列表中的行
acl = """
access-list access_myside_in line 1 extended permit tcp host 18.1.1.12 host 15.2.3.4 eq ssh
access-list access_myside_in line 2 extended permit tcp host 18.1.2.2 host 15.1.3.4 eq ssh
access-list access_myside_in line 3 extended permit tcp host 16.1.1.2 host 5.2.23.4 eq ssh
access-list access_myside_in line 4 extended permit tcp host 18.2.1.2 host 15.2.1.4 eq ssh
access-list access_myside_in line 5 extended permit tcp host 10.1.1.2 host 15.2.3.14 eq ssh
access-list access_myside_in line 6 extended permit tcp host 13.1.1.2 host 10.2.3.4 eq ssh
access-list access_myside_in line 7 extended permit tcp host 18.1.1.2 host 12.2.3.4 eq ssh
access-list access_myside_in line 8 extended permit tcp host 12.1.1.2 host 9.2.3.4 eq ssh
access-list access_myside_in line 9 extended permit tcp host 15.1.1.2 host 15.22.3.4 eq ssh
access-list access_myside_in line 10 extended permit tcp host 5.1.1.2 host 11.2.3.4 eq ssh
access-list access_myside_in line 19 extended permit tcp host 1.1.1.2 host 15.2.13.4 eq ssh
access-list access_myside_in line 25 extended permit tcp host 11.1.1.2 host 15.12.3.4 eq ssh
access-list access_myside_in line 30 extended permit tcp host 8.1.1.2 host 5.2.3.4 eq ssh
access-list access_myside_in line 31 extended permit tcp host 111.1.1.2 host 15.2.3.40 eq ssh
access-list access_myside_in line 33 extended permit tcp host 18.1.11.2 host 17.2.3.4 eq ssh
access-list access_myside_in line 40 extended permit tcp host 19.1.1.2 host 55.2.3.4 eq ssh
access-list access_myside_in line 49 extended permit tcp host 20.1.1.2 host 80.2.3.4 eq ssh
"""
myip = ['18.1.1.2', '20.1.1.2', '5.2.3.4', '15.2.3.4', '9.2.3.4', '8.1.1.2 ', '11.2.3.4']
acl_match = []
for a in myip:
for b in acl.splitlines():
if a in b:
acl_match.append(b)
print(acl_match)
['access-list access_myside_in line 7 extended permit tcp host 18.1.1.2 host 12.2.3.4 eq ssh',
'access-list access_myside_in line 49 extended permit tcp host 20.1.1.2 host 80.2.3.4 eq ssh',
'access-list access_myside_in line 1 extended permit tcp host 18.1.1.12 host 15.2.3.4 eq ssh',
'access-list access_myside_in line 30 extended permit tcp host 8.1.1.2 host 5.2.3.4 eq ssh',
'access-list access_myside_in line 31 extended permit tcp host 111.1.1.2 host 15.2.3.40 eq ssh',
'access-list access_myside_in line 40 extended permit tcp host 19.1.1.2 host 55.2.3.4 eq ssh',
'access-list access_myside_in line 1 extended permit tcp host 18.1.1.12 host 15.2.3.4 eq ssh',
'access-list access_myside_in line 31 extended permit tcp host 111.1.1.2 host 15.2.3.40 eq ssh',
'access-list access_myside_in line 8 extended permit tcp host 12.1.1.2 host 9.2.3.4 eq ssh',
'access-list access_myside_in line 7 extended permit tcp host 18.1.1.2 host 12.2.3.4 eq ssh',
'access-list access_myside_in line 30 extended permit tcp host 8.1.1.2 host 5.2.3.4 eq ssh',
'access-list access_myside_in line 10 extended permit tcp host 5.1.1.2 host 11.2.3.4 eq ssh']
最佳答案
如果格式一致,您可以在每一行中搜索每个 ip(前后有空格),也可以使用正则表达式。
acl = r"""
access-list access_myside_in line 1 extended permit tcp host 18.1.1.12 host 15.2.3.4 eq ssh
access-list access_myside_in line 2 extended permit tcp host 18.1.2.2 host 15.1.3.4 eq ssh
access-list access_myside_in line 3 extended permit tcp host 16.1.1.2 host 5.2.23.4 eq ssh
access-list access_myside_in line 4 extended permit tcp host 18.2.1.2 host 15.2.1.4 eq ssh
access-list access_myside_in line 5 extended permit tcp host 10.1.1.2 host 15.2.3.14 eq ssh
access-list access_myside_in line 6 extended permit tcp host 13.1.1.2 host 10.2.3.4 eq ssh
access-list access_myside_in line 7 extended permit tcp host 18.1.1.2 host 12.2.3.4 eq ssh
access-list access_myside_in line 8 extended permit tcp host 12.1.1.2 host 9.2.3.4 eq ssh
access-list access_myside_in line 9 extended permit tcp host 15.1.1.2 host 15.22.3.4 eq ssh
access-list access_myside_in line 10 extended permit tcp host 5.1.1.2 host 11.2.3.4 eq ssh
access-list access_myside_in line 19 extended permit tcp host 1.1.1.2 host 15.2.13.4 eq ssh
access-list access_myside_in line 25 extended permit tcp host 11.1.1.2 host 15.12.3.4 eq ssh
access-list access_myside_in line 30 extended permit tcp host 8.1.1.2 host 5.2.3.4 eq ssh
access-list access_myside_in line 31 extended permit tcp host 111.1.1.2 host 15.2.3.40 eq ssh
access-list access_myside_in line 33 extended permit tcp host 18.1.11.2 host 17.2.3.4 eq ssh
access-list access_myside_in line 40 extended permit tcp host 19.1.1.2 host 55.2.3.4 eq ssh
access-list access_myside_in line 49 extended permit tcp host 20.1.1.2 host 80.2.3.4 eq ssh
"""
acl = [ x for x in acl.splitlines()]
myip = ['18.1.1.2', '20.1.1.2', '5.2.3.4', '15.2.3.4', '9.2.3.4', '8.1.1.2 ', '11.2.3.4']
acl_match = []
for ip in myip:
for string in acl:
if string.find(" " + ip + " ")!=-1:
acl_match.append(string)
#print(string)
print(acl_match)
access-list access_myside_in line 7 extended permit tcp host 18.1.1.2 host 12.2.3.4 eq ssh
access-list access_myside_in line 49 extended permit tcp host 20.1.1.2 host 80.2.3.4 eq ssh
access-list access_myside_in line 30 extended permit tcp host 8.1.1.2 host 5.2.3.4 eq ssh
access-list access_myside_in line 1 extended permit tcp host 18.1.1.12 host 15.2.3.4 eq ssh
access-list access_myside_in line 8 extended permit tcp host 12.1.1.2 host 9.2.3.4 eq ssh
access-list access_myside_in line 10 extended permit tcp host 5.1.1.2 host 11.2.3.4 eq ssh
关于python - 将列表与字符串进行比较并在字符串中打印列表的匹配行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58288588/