我正在编写一个脚本来从 Cisco ASA 的配置中解析防火墙规则。
我的输入示例包括:
access-list myACL line 1 extended permit tcp host 10.8.13.200 host 10.32.53.22 eq 1122
access-list myACL line 2 extended permit tcp 10.8.13.0 255.255.255.0 host 10.1.206.17 eq 445
access-list myACL line 3 extended permit udp host 10.8.13.200 eq 54345 host 10.1.206.17 eq 445
access-list myACL line 4 extended permit icmp any any
对于上面的三行,我想要的 .csv 格式的输出如下。但是,这些也可以是要存储在数据库中的元组。
#aclName,lineNumber,action,protocol,sourceIP,sourcePort,destIP,destPort
myACL,1,permit,tcp,10.8.13.200,*,10.32.53.22,1122
myACL,2,permit,tcp,10.8.13.0/24,*,10.1.206.17,445
myACL,3,permit,udp,10.8.13.200,54345,10.1.206.17,445
myACL,4,permit,icmp,*,*,*,*
我在选择这个项目的方法时遇到了麻烦。我查看了许多选项,包括 ats、shlex,甚至只是使用正则表达式,但我很难确定最佳选项是什么。PLY 在这里有帮助吗?
什么是合适的方法?