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-Key: 155081

Url: https://administrator.de/contentid/155081

Printed on: April 25, 2024 at 09:04 o'clock

Member: micneu
micneu Nov 15, 2010 at 10:28:59 (UTC)
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
Member: adminst
adminst Nov 15, 2010 at 10:35:42 (UTC)
Goto Top
Hallo Michael

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

Gruss
adminst
Member: micneu
micneu Nov 15, 2010 at 10:40:42 (UTC)
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
Member: adminst
adminst Nov 15, 2010 at 10:52:28 (UTC)
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
Member: Mike.ekiM
Mike.ekiM Nov 15, 2010 at 11:00:51 (UTC)
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/
Member: micneu
micneu Nov 15, 2010 at 11:02:51 (UTC)
Goto Top
ich habe das mal eben aus dem handgelenk geschriben:

#!/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
Mitglied: 60730
60730 Nov 15, 2010 at 12:19:57 (UTC)
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

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ß
Member: micneu
micneu Nov 15, 2010 at 13:14:23 (UTC)
Goto Top
@timobeil: auch nicht schlecht fehlt nur noch die powershell version ;)
mein shell script habe ich jetzt auch getestet ;)

gruß michael
Member: micneu
micneu Nov 15, 2010 at 16:26:03 (UTC)
Goto Top
Habe jetzt noch den PowerShell code erstellt:

#   **************************************************************
#   * 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
Mitglied: 60730
60730 Nov 16, 2010 at 08:58:38 (UTC)
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ß