ich folgende Python-Code geschrieben haben:Python-Skript - die DNS-Auflösung
#!/usr/bin/python
import subprocess
inputfile = open('list2.txt' , 'r')
outputfile = open('results.txt' ,'w')
for lines in inputfile.readlines():
runproc = subprocess.Popen(["dig", lines],stdout=outputfile,)
inputfile.close()
outputfile.close()
führt einfach DNS-Abfragen in einer Liste auf Domänen und die Ausgabe in eine Datei schreibt. Die list2.txt hat folgendes Format:
www.domain1.com
www.domain2.com
Die Ausgabedatei (results.txt) schreibt den folgenden Export und nicht später:
; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> www.domain1.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 12561
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; MBZ: 0005 , udp: 4096
;; QUESTION SECTION:
;www.domain1.com\010. IN A
;; AUTHORITY SECTION:
. 5 IN SOA a.root-servers.net.
Wenn Sie sorgfältig die Ausgabe beobachten, der Code fügt eine komisch \ 010 neben Domain und natürlich schlägt die DNS-Auflösung fehl. Ich kann nicht herausfinden, was los ist. Irgendwelche Ideen?
Dank im Voraus
Könnte es nur am Ende der Zeile das Zeilenende-Zeichen sein? Versucht 'subprocess.Popen ([" dig ", linien.strip()], ..'? – L3viathan
Vielen Dank L3viathan für die Antwort. Das Skript gibt jetzt aus: dig: '' ist kein legaler Name (unerwartetes Ende der Eingabe) – VorX
Haben Sie eine leere Zeile irgendwo in der 'list2.txt'? – L3viathan