使用python实现ACL自动化

2024-05-29 03:25:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经在pro设备中完成了ACL语句的任务卷展栏。我正在学习自动化方面的知识,希望使用Python的Netmiko模块完成这项任务

所以,现在我需要增加seq number并将输出(ACL语句)复制到相应的ACL中

例如,如果我发送命令:

sh ip access-lists vlan2_in | i 1.1.1.1

然后返回值为

140 permit ip host 2.2.2.2 host 1.1.1.1

我的代码:

output = "140 permit ip host 2.2.2.2 host 1.1.1.1"
if "1.1.1.1" in output:
       ip_acl = output.replace("1.1.1.1","3.3.3.3")
       print(ip_acl)

我的代码的输出:140 permit ip host 2.2.2.2 host 3.3.3.3

通过这种方式,我实现了源代码完整的ACL语句。但是,在输出中,ACL编号(140)需要增加1

我的代码的预期输出:141 permit ip host 2.2.2.2 host 3.3.3.3


Tags: 模块代码in命令iphostnumberoutput
1条回答
网友
1楼 · 发布于 2024-05-29 03:25:36

您可以使用切片的概念从命令中解析ACL编号,然后将其递增1。要增加它,必须将其转换为int(),然后在命令中替换它

output = "140 permit ip host 2.2.2.2 host 1.1.1.1"
ACL_NUMBER = output[:3]
if "1.1.1.1" in output:
    ip_acl = output.replace("1.1.1.1", "3.3.3.3")
    ip_acl = output.replace(ACL_NUMBER, str(int(ACL_NUMBER)+1))
print(ip_acl)

相关问题 更多 >

    热门问题