不確定這個問題是否有它的位置,但無論如何我會給它一個鏡頭。 基本上我需要的是解析一個conf文件。使用python解析dns配置文件
它應該是這樣的:
1. #local-data: "some.dns.url IN MX 192.168.80.45"
2. local-data: "some.other.dns.url IN A 192.168.60.1"
3. local-data: "router.home.somewhere IN A 192.168.20.1"
4. *a linebreak*
5. local-data-ptr: "192.168.80.45 some.dns.url"
6. local-data-ptr: "192.168.60.1 some.other.dns.url"
7. # some other random comment
8. local-data-ptr: "192.168.20.1 router.home.somewhere"
什麼我需要下車的是: 地址:「some.other.dns.url」關於第二線 「IN」之後是什麼:可以是MX,A和其他一些。 IP:在這種情況下是192.168.60.1,但這可能是其他任何東西。
我不一定需要完整的腳本。地獄我甚至不需要一個,這不是我在這裏發佈的目標。 我想知道這種情況下的最佳方法。 大部分我傾向於擺脫這樣的情況的時候,而這個時候,這似乎有點棘手,因爲:
我不能立足自己上線的大小。
我不能立足自己的「點」
(.)
的地址,一個可以有2個點,而另一個有3我也行(
"IN"
)的一部分,這只是令人不安,而不是某種用途。
是我到目前爲止已經完成:
dnsconf = open('theconffile.conf', 'r')
dnsconf = dnsconf.readlines()
x = []
for line in dnsconf:
cont = re.findall('\"(.+?)\"', line)
if len(line) > 1 and line[:1] is not '#':
x.append(cont)
print cont
cont
基本上包含什麼是雙引號內。例如「some.dns.url IN MX 192.168.80.45」。
我覺得這是一個很好的開始,但我沒有看到如何從那裏繼續。我用正則表達式不太好,我覺得我需要的實際上是正則表達式...所以我有點卡在這裏。
任何人都可以讓我在這個問題的正確軌道?
爲什麼不只是'。* \ s + IN \ s +(?: A | MX | ...)\ s +(。*?)「\ s * $'? – Kevin
https://pypi.python .org/pypi/iscpy? – wenzul