adminst
Goto Top

Batch DNS Auflösung für domains

Hallo zusammen

Ich steh momentan auf dem Schlauch. Eine riesen Liste mit Domains ist auf meinem Tisch. Jene sollen via Batch über den DNS abgefragt werden und die Domain + IP + evtl. Reverse DNS Auflösung in ein File geschrieben werden.

Man könnte z.b. die auflöstung via nslookup -q=a beispiel.de + der Reverse über nslookup (IP der Domain).

Mein Problem ist jetzt wie schreibe ich das jetzt am sinnvollsten als Batch?
Kann mir jemand helfen?

Danke und Gruss
adminst

Content-ID: 155081

Url: https://administrator.de/forum/batch-dns-aufloesung-fuer-domains-155081.html

Ausgedruckt am: 10.04.2025 um 22:04 Uhr

micneu
micneu 15.11.2010 um 11:28:59 Uhr
Goto Top
mit welchen betriebsystem arbeitets du oder soll es umgesetzt werden?
hast du die möglichkeiten mit awk und sed zu arbeiten?
oder nur cmd und powershell?
soll das ergebnis im csv stiel gespeichert werden?
mach mal ein konkretes beispiel bitte.
hast du die domains in einer csv datei die abgefragt werden sollen?

gruß michael
adminst
adminst 15.11.2010 um 11:35:42 Uhr
Goto Top
Hallo Michael

Ich kanns entweder an einem win XP Rechner oder auf nem Ubuntu 10.10 machen.

Gruss
adminst
micneu
micneu 15.11.2010 um 11:40:42 Uhr
Goto Top
und wie ist deine liste aufgebaut?
als csv? ich benötige ein beispiel.
ohne diese weiß ich ja nicht wie ich anfangen soll.

gruß michael
adminst
adminst 15.11.2010 um 11:52:28 Uhr
Goto Top
Eingabe:
txt file. mit einer Domain pro Zeile

Ausgabe:
txt oder csv

z.b. test.de 1.1.1.1 host1.test.de

Danke für deine Hilfe.
admins
Mike.ekiM
Mike.ekiM 15.11.2010 um 12:00:51 Uhr
Goto Top
Hallo,

Wenn du professionelle Analysen fahren möchtest würde ich dir folgendes empfehlen.
Denke damit tut man sich einfacher bei großen Umgebungen:

http://www.menandmice.com/
micneu
micneu 15.11.2010 um 12:02:51 Uhr
Goto Top
ich habe das mal eben aus dem handgelenk geschriben:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash
###
### sucht ip und domainnamen
### (c) M. N. 15.11.2010
###
LANG=
#### anpassen
# Dateiname der domain liste in csv
CSVDATEI=name.csv
# ausgabe datei in csv
LISTE=liste.csv
####
DOMAIN=0

for DOMAIN in $(cat $CSVDATEI); do
    #echo $DOMAIN
    ERGEBNIS1=$(nslookup $DOMAIN | grep Name | cut -d: -f2)
    ERGEBNIS2=$(nslookup $DOMAIN | grep Address | cut -d: -f2 | grep -v 127)
    echo $ERGEBNIS1,$ERGEBNIS2
    echo $ERGEBNIS1,$ERGEBNIS2 >> $LISTE
done
kann sein das du die zeile 14. noch anpassen musst.
dich nutze bei mir mein linux als dns und so zeigt er mir immer die 127... immer mit an, kann sein das dort was anders hin muss.

so hoffe das klappt.

gruß michael
60730
60730 15.11.2010 um 13:19:57 Uhr
Goto Top
moin,

dann der xp Teil (hat etwas länger gedauert...)
Ist dafür aber auch getestet.
Da es um mehrere abzuarbeitende Zeilen geht hab ich Bastlas Weg leicht adoptiert und mir ein s (für die Mehrzahl der Zeilen) gekauft.

Der ganze "Kladderadatsch geht davon aus, dass die dns.txt im Pfad C:\script\nslookup\ steht - evtl. anpassen
Die beiden "more" sind dafür, das (siehe auch Micks Ergebnis) der antwortende DNS nicht verwertet wird.
btw: @ Mick : du hast das sicherlich auf deinem DNS laufen lassen, daher die 127.0.0.1 face-wink

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
rem prepare test
if not exist C:\script\nslookup\ md C:\script\nslookup\ && echo www.administrator.de>C:\script\nslookup\dns.txt

:script
for /f %%a in (C:\script\nslookup\dns.txt) do call :procceslines %%a

goto eof

:procceslines
nslookup %1|find "Address">C:\script\nslookup\dns.tmp && echo %1>>C:\script\nslookup\dns.tmp  
for /f "tokens=2" %%x in ('more +1 C:\script\nslookup\dns.tmp') do set ip=%%x  
for /f %%y in ('more +2 C:\script\nslookup\dns.tmp') do set host=%%y  
echo %host%,%ip%>>C:\script\nslookup\output.txt

:eof

Gruß
micneu
micneu 15.11.2010 um 14:14:23 Uhr
Goto Top
@timobeil: auch nicht schlecht fehlt nur noch die powershell version ;)
mein shell script habe ich jetzt auch getestet ;)

gruß michael
micneu
micneu 15.11.2010 um 17:26:03 Uhr
Goto Top
Habe jetzt noch den PowerShell code erstellt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#   **************************************************************
#   * domain suche und in .csv schreiben   *
#   * *
#   *                                                            *
#   **************************************************************
#    Das muß einmal auf der powershell ausgeführt werden
#     "Set-ExecutionPolicy Unrestricted" 
#   **************************************************************
#   * Erstellt M.N - POWERSHELL / Entwicklung   15.11.2010                   *
#   **************************************************************

#$ErrorActionPreference = 'stop' 
$ErrorActionPreference = 'SilentyContinue'  
$INHALT = Get-Content "c:\liste.csv"  
$LISTE = "c:\liste-neu.csv"  
foreach ($DOMAIN in $INHALT) {
    echo ================
    $TEST = nslookup $DOMAIN
    $TEST1 = $TEST -match 'Name:' | -replace 'Name:\s*'      
    $TEST2 = $TEST -match 'Address:' | -replace 'Address:\s*'      
    $TEST22 = $TEST2[1]
    $TEST3 = "$TEST1,$TEST22"  
    echo $TEST3
    $TEST3 >> $LISTE
    echo ================
    }

gruß michael
60730
60730 16.11.2010 um 09:58:38 Uhr
Goto Top
Salü,

na dann wirds aber langsam Zeit, dass der Mann mit dem Pistaziengrünen Haken den selbigen von der Wäscheleine an den Fred übergibt face-wink

Gruß