Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

IP zu Hostname - Listenweise

Frage Microsoft Windows Netzwerk

Mitglied: Flix3793

Flix3793 (Level 1) - Jetzt verbinden

04.08.2011 um 15:46 Uhr, 3961 Aufrufe, 19 Kommentare

Hallo Forum,

ich stehe hier vor einem Wulst von Hostnames, und brauche dazu die IP-Adressen.

Das genaue Szenario:

ca. 200 Hosts, teils in der Domäne, teils nicht, deren Namen alle in einem Textfile liegen (hosts.txt).

Diese Hosts sollen nun alle zur Überwachung in unser Monitoring-Tool importiert werden. hierzu brauche ich letztendlich nur die IPs der Server untereinander in einem *.txt-File.

Meine Frage ist nun, wie ich möglichst einfach und schnell die IPs zu den Hostnames herausfinden kann. Am liebsten wäre mir da ne Batch oder ein einfaches Script, was folgendes macht:

*Doppelklick*
>>Schnappt sich "hosts.txt" <- Das sollte ich eigentlich hinbekommen, kein Problem
>>Besorgt sich die IPs zu den Hostnames <- Hier klemmts
>>Schmeißt nur die IPs schön untereinander in "ips.txt" <- Und hier :S
*Ende*

Fällt euch dazu etwas ein? Oder gibt es Freewaretools, die sowas können?

Danke schon mal! - Felix
Mitglied: brammer
04.08.2011 um 15:54 Uhr
Hallo.

wenn die Hostnames über den DNS Aufgelöst werden: ping hostname

Oder, mit netscan die P Range scannen und den Hostname mit auflösen lassen

brammer
Bitte warten ..
Mitglied: Flix3793
04.08.2011 um 16:03 Uhr
wenn die Hostnames über den DNS Aufgelöst werden: ping hostname

Die Idee hatte ich auch schon, das funktioniert prinzipiell auch. Aber wie bekomme ich die IP aus dem Ergebnis des Pings in ein Textfile?
Bitte warten ..
Mitglied: bastla
04.08.2011 um 16:07 Uhr
Hallo Flix3793 und willkommen im Forum!
Aber wie bekomme ich die IP aus dem Ergebnis des Pings in ein Textfile?
So ähnlich, wie es über "nslookup" ginge:
01.
for /f "tokens=2 delims=, " %%i in ('nslookup www.administrator.de') do set "IP=%%i" 
02.
echo %IP%
- konkret (die Ähnlichkeit ist dann doch nicht ganz so groß ):
for /f "tokens=2 delims=[]" %%i in ('ping -n 1 www.administrator.de^|findstr "["') do >>"D:\ips.txt" echo %%i
Grüße
bastla
Bitte warten ..
Mitglied: Flix3793
04.08.2011 um 16:14 Uhr
Also:


for /f "tokens=2 delims=, " %%i in ('ping BEISPIELSERVER01') do set "IP=%%i"

echo %IP% > ips.txt

so? o.O Wär ja zu schön... >_>
Bitte warten ..
Mitglied: bastla
04.08.2011 um 16:18 Uhr
Hallo Flix3793!

Am besten gleich am Stück:
01.
@echo off & setlocal 
02.
set "hosts=D:\hosts.txt" 
03.
set "ips=D:\ips.txt" 
04.
 
05.
del "%ips%" 2>nul 
06.
for /f "usebackq delims=" %%a in ("%hosts%") do ( 
07.
    for /f "tokens=2 delims=[]" %%i in ('ping -n 1 %%a^|findstr "["') do echo %%i 
08.
)>>"%ips%"
Grüße
bastla

P.S.: Code-Formatierung
Bitte warten ..
Mitglied: Flix3793
05.08.2011 um 08:05 Uhr
Okay, danke!
Das läuft so weit. Allerdings stehe ich jetzt vor dem nächsten Problem...
In der Liste von Hosts stehen immer mal wieder ein paar drin, die nicht erreichbar sind. Das an sich ist kein Problem, aber kann man bei denen nicht irgendwas in der IP-Liste einfügen? Also etwa so:

01.
10.10.10.1 
02.
10.10.10.2 
03.
--- nicht gefunden 
04.
10.10.10.3 
05.
10.10.10.n
Ansonsten bringt mir das nämlich leider nicht allzu viel, weil ich die IPs nicht den Hosts zuordnen kann.
Bitte warten ..
Mitglied: Flix3793
05.08.2011 um 09:46 Uhr
Soo, habe einen kleinen Schritt weiter geschafft. Ich kann jetzt die Hosts gemeinsam mit den IPs in einer *.txt - Datei ausgeben. Diese lese ich dann sowieso mit excel ein und benutze "~" als Trennzeichen, um den Text in Spalten zu bringen. Der Code sieht jetzt so aus:

01.
@echo off & setlocal  
02.
set "hosts=D:\hosts.txt" 
03.
set "ips=D:\ips.txt"  
04.
 
05.
del "%ips%" 2>nul  
06.
for /f "usebackq delims=" %%a in ("%hosts%") do (  
07.
    for /f "tokens=2 delims=[]" %%i in ('ping -n 1 %%a^|findstr "["') do echo %%i~%%a)>>"%ips%" 
08.
pause
Das hat nun auch zur Folge, dass unerreichbare Hosts anscheinend einfach nicht ausgegeben werden. Ich schau nochmal drüber und gebe dann Bescheid.
Bitte warten ..
Mitglied: Flix3793
05.08.2011 um 11:17 Uhr
Soo, nun hat (fast) alles geklappt.

Das abfragen der IPs über die Hostnames war erfolgreich, ich habe nun ein Textfile, welches die folgende Formatierung hat:

XXX.XXX.XXX.XXX~HOSTNAME1
YYY.YYY.YYY.YYY~HOSTNAME2
ZZZ.ZZZ.ZZZ.ZZZ~HOSTNAME3

Dies kann ich nun in Excel importieren, indem ich das *.txt-File mit Excel öffne, und ihm sage, dass er "~" als Spaltentrennzeichen ansehen soll.
Dann bekomme ich eine Tabelle, die so aussieht:

01.
_____________________________ 
02.
| XXX.XXX.XXX.XXX | HOSTNAME1| 
03.
|_________________|__________| 
04.
| YYY.YYY.YYY.YYY | HOSTNAME2| 
05.
|_________________|__________| 
06.
| ZZZ.ZZZ.ZZZ.ZZZ | HOSTNAME3| 
07.
|_________________|__________|
Diese kann ich über einige Umwege nun mit dem Monitoring-Tool importieren. Das klappt auch - fast.

Nun stelle ich nämlich fest, dass einige Hosts fehlen. Natürlich erstmal die, deren IP ich mit dem Script nicht nachschlagen konnte. Es fehlen allerdings komischerweise noch mehr. Nun möchte ich herausfinden welche. Dazu habe ich zuersteinmal die Liste aller "Tests" aus dem Monitoring-Tool exportiert. Darin stehen aber nicht nur die Hostnames, sondern noch ne Menge anderer Kram. Gibt es eine möglichkeit, hier jetzt nur die hostnames rauszubekommen? Ein Test (bzw. Eintrag eines Hosts) sieht so aus:

01.
; ------- Test #90 ------- 
02.
 
03.
 
04.
Method      = Ping 
05.
;--- Common properties --- 
06.
;DestFolder = Root\StandortXY\Server\ 
07.
Title       = Ping: BEISPIELHOSTNAME 
08.
Comment     = Ping 123.123.123.123 
09.
RelatedURL  =  
10.
NamePattern = %methodname%: BEISPIELHOSTNAME 
11.
CmntPattern = Ping %host% 
12.
ScheduleMode= Regular 
13.
Schedule    = UNSERESCHEDULE 
14.
Interval    = 15 
15.
Alerts      =Ein Alert halt 
16.
ReverseAlert= No 
17.
UnknownIsBad= Yes 
18.
WarningIsBad= Yes 
19.
UseCommonLog= Yes 
20.
PrivLogMode = Default 
21.
CommLogMode = Default 
22.
;--- Test specific properties --- 
23.
Host        = 123.123.123.123 
24.
Timeout     = 2000 
25.
Retries     = 3 
26.
MaxLostRatio= 100 
27.
DisplayMode = time 
28.
DontFragment= No
Hier müsste ich also entweder an das kommen, was hinter

01.
Title       = Ping: 
oder
01.
NamePattern = %methodname%: 
steht.

Alle anderen Informationen sind für mich und für das Problem ja irrelevant.

Fällt euch da was ein? Ich hab nur (oh, schon wieder!) den Einfall, die Zeichenkette in ein neues File schreiben zu lassen.
Bitte warten ..
Mitglied: bastla
05.08.2011 um 11:55 Uhr
Hallo Flix3739!

Etwa so:
01.
@echo off & setlocal 
02.
set "Tests=D:\tests.txt" 
03.
set "Liste=D:\Listetxt" 
04.
 
05.
del "%Liste%" 2>nul 
06.
(for /f "tokens=2 delims=:" %%i in ('findstr /b "Titel" "%Tests%"') do echo %%i)>>"%Liste%"
Grüße
bastla
Bitte warten ..
Mitglied: Flix3793
05.08.2011 um 12:03 Uhr
Du bist so ne Art Batchgott, oder? xD

Danke! Hat super funktioniert!
Ich musste erst noch bei

01.
('findstr /b "Titel" "%Tests%"')

aus dem "Titel" ein "Title" machen, aber das is ja kein Problem.
Hat spitzenmäßig geklappt, jetzt kann ich die neue Liste mit der alten abgleichen, und vielleicht finde ich dann raus, warum manche Hosts fehlen!

Danke schonmal an alle!
Bitte warten ..
Mitglied: bastla
05.08.2011 um 12:11 Uhr
Hallo Flix3793!
Du bist so ne Art Batchgott, oder? xD
Nö, Batch-Bastler ...

Das Abgleichen könnte (direkt an der Kommandozeile) etwa so gehen:
findstr /v /g:D:\Liste.txt D:\hosts.txt>D:\Differenz.txt
Grüße
bastla
Bitte warten ..
Mitglied: Flix3793
05.08.2011 um 12:20 Uhr
Das versuch ich zuhause mal, jetzt mach ich erstmal alle, die hier grade vom Arbeitsplatz aus lesen neidisch, indem ich laut "FEIERABEND" rufe!

Hab mir jetzt alles heimgeschickt, was ich brauche, und Langeweile werd ich auch haben. :D
Ich meld mich dann, wenn ich zuhause bin. =)

Bis nachher dann!
Bitte warten ..
Mitglied: Flix3793
08.08.2011 um 08:02 Uhr
Hey, guten Morgen alle!

Ich bin über's Wochenende irgendwie absolut nicht motiviert gewesen, weiterzuwühlen - aber grade ist mir was aufgefallen.

Einer der Hosts (nennen wir ihn BEISPIELHOST1), der absolut sicher im Monitoring erfasst ist, und den ich auch mit strg-F im Exportfile finde (dort, wo noch so viele unnütze Infos stehen), landet nicht in "Liste.txt", welche ich ja zur Vervollständigung des Monitorings nutze.

Er ist wie alle anderen auch bis zur Title-Zeile, die wir ja auslesen wollen folgendermaßen beschriftet:

01.
; ------- Test #95 ------- 
02.
 
03.
 
04.
Method      = Ping 
05.
;--- Common properties --- 
06.
;DestFolder = Root\StandortB\Server\ 
07.
Title       = Ping: BEISPIELHOST1
Ein anderer Host, welcher sauber ausgelesen und in "Liste.txt" eingetragen wurde sieht genauso aus:
01.
; ------- Test #178 ------- 
02.
 
03.
 
04.
Method      = Ping 
05.
;--- Common properties --- 
06.
;DestFolder = Root\StandortA\Server\ 
07.
Title       = Ping: BEISPIELHOST2
Ich versteh nicht, worin die sich unterscheiden. Der Hostname kann auch bspw. nicht zu lang sein, da auch welche erfolgreich übernommen wurden, die sehr viel längere Hostnames tragen. Zahlen/Sonderzeichen habe ich auch in einigen anderen Hostnames drin. Ich versteh's nicht.
Bitte warten ..
Mitglied: bastla
08.08.2011 um 11:59 Uhr
Hallo Flix3793!

Verarbeitet wird zunächst einmal nur, was
findstr /b "Title" "D:\tests.txt"
liefert - das kannst Du direkt an der Kommandozeile testen.

Grüße
bastla
Bitte warten ..
Mitglied: Flix3793
08.08.2011 um 12:05 Uhr
Hab's schon hinbekommen, der import hat jetzt zu 110% geklappt.

(Warum 110%?!)
-> Weil ich versehentlich ein altes Importfile mit eingebunden hab, wodurch jetzt ne Menge mittlerweile aus dem Betrieb genommene Server in der Liste sind. Die darf ich jetzt alle manuell rausnehmen. )

Aber was ich wollte hab ich erreicht - danke an alle und ein besonders dickes Danke an dich, bastla!
Bitte warten ..
Mitglied: bastla
08.08.2011 um 12:10 Uhr
Hallo Flix3793!

Freut mich, dass es jetzt passt.

Wo hatte es denn geklemmt?

Grüße
bastla
Bitte warten ..
Mitglied: Flix3793
08.08.2011 um 12:27 Uhr
Hey!

Irgendwie hatte das Batchskript beim Auslesen der Hostnames aus der Exportdatei bei manchen ein Leerzeichen davor mitgenommen, dadurch wurden sie nicht richtig zurück importiert. Komische Sache.... Aber hat jetzt hingehauen.

Danke nochmals!

(Achja, falls wer gut massieren kann, mein Nacken hätte es langsam nötig. Das ganze Theater hier musste ich an nem Monitor machen, der ca. 2m über dem Tisch an der Wand hängt und auf dem wir aus Sicherheitsgründen keine Fernwartungstools haben ._.' *knacks* *knirsch*)

Lg, Felix!
Bitte warten ..
Mitglied: bastla
08.08.2011 um 12:31 Uhr
[OT]
Hallo Flix3793!

Ich wusste immer schon, dass es Jobs gibt, die eigentlich nur im Liegen zu ertragen sind ...

Grüße
bastla
[/OT]
Bitte warten ..
Mitglied: Flix3793
08.08.2011 um 15:18 Uhr
~ot~

Joa, schon - aber seit wann gehört Fachinformatiker da dazu? o.O

~/ot~
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
Hostname bzw IP-Adresse in Excel eintragen (12)

Frage von EgonFrenz zum Thema Batch & Shell ...

Batch & Shell
TCP IP Druckerport auf Win 7 Client von IP ändern auf DNS Hostname (9)

Frage von pixel0815 zum Thema Batch & Shell ...

E-Mail
gelöst Mail Spam fremde IP (10)

Frage von BerndP zum Thema E-Mail ...

DNS
gelöst Sophos UTM9 - FTP nur über IP erreichbar (4)

Frage von PronMaster zum Thema DNS ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...