我正在編寫一個腳本來解析來自Cisco ASA配置的防火牆規則。我的輸入的解析Python中的防火牆規則
實例包括:
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能幫忙嗎?
這是什麼適合的方法?
這是非常好的 - 非常感謝您的快速回復。這樣做的竅門,並不需要我在解析器上工作! – 2012-04-17 20:33:59