tommy-tyrol
Goto Top

In einer Batchdatei herausfinden welcher Rechnername sich hinter einer IP verbirgt

Schönen guten Abend erst mal,

ich habe folgendes Problem:

In unseren Niederlassungen läuft eine Software mit einer Datenbank im Hintergrund welche sich nur sichern lässt, wenn alle Benutzer abgemeldet sind.
Nun wäre es ja ein leichtes einfach die Prozesse an den mit einem ping zu erreichenden Arbeitsplätzen einfach zu killen - will ich auch möchte allerdings
wenn ich eine bestimmte IP-Range durchpinge den verantwortlichen filialleitern eine mail zusenden, dass schon wieder eine Anzahl von Arbeitsplätzen
nicht abgemeldet war. Da aber die Filialleiter mit der IP-Adresse nichts anfangen können möchte ich den Host-Name Auslesen!

Wie bewerkstellige ich das?

Bisher hab ich mir unter zuhilfenahme verschiedener foren mal folgendes zusammengebastelt:
wobei KST die nummer unserer Filiale ist und die IP Range die gescannt werden soll von 192.10.160.1 bis 192.10.160.10 laufen soll


echo off


SET t=1
SET KST=600
:start
SET /a t=t+1
ping -n 1 192.10.1%KST:~0,-1%.%t% > nul
if %errorlevel%==0 (
wie finde ich hier heraus welcher Computername es ist?
)
del IPTEST.TXT
)

IF %t%==10 GOTO EOF
Goto start

Content-Key: 254637

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

Ausgedruckt am: 29.03.2024 um 02:03 Uhr

Mitglied: laster
Lösung laster 12.11.2014, aktualisiert am 13.11.2014 um 14:23:49 Uhr
Goto Top
hallo Tommy,

wie wärs mit nslookup ?

Allerdings glaub ich nicht, dass solche Erziehungsmethoden funktionieren.
Anwendung oder USerprozesse (wie auch immer) beenden, DB sichern, glücklich sein.

Gruß
LS
Mitglied: Meierjo
Meierjo 13.11.2014 um 08:37:56 Uhr
Goto Top
Hallo

Wieso pingst du nicht direkt den Hostnamen an? Dann weisst du direkt, welcher Host noch "online" ist. IP-Adresse ist in dem Fall uninteressant.

zb Ping -n 4 -w1000 PC010

Gruss Urs
Mitglied: Doskias
Doskias 13.11.2014 um 09:22:15 Uhr
Goto Top
Versuch mal den Parameter -a

Bsp: ping -a 8.8.8.8

Ping wird ausgeführt für google-public-dns-a.google.com [8.8.8.8] mit 32 byts Daten:
Antwort von 8.8.8.8: Bytes 32 Zeit 15 ms TTl=46
Antwort von 8.8.8.8: Bytes 32 Zeit 16 ms TTl=46
Antwort von 8.8.8.8: Bytes 32 Zeit 15 ms TTl=46
Antwort von 8.8.8.8: Bytes 32 Zeit 15 ms TTl=46

Vielleicht hilft dir der Parameter in deinem Skript weiter.
Mitglied: bremserfhfb
bremserfhfb 13.11.2014 um 09:36:21 Uhr
Goto Top
Hallo Tommy,

ich mache inzwischen die meisten Aufgaben über AutoIT.

Dort Klappt das ganz simpel mit _TCPIpToName(<IP>)

Gruß,
Klaus
Mitglied: Tommy-Tyrol
Tommy-Tyrol 13.11.2014 um 09:57:53 Uhr
Goto Top
Hi Urs,

danke für diesen Ansatz, aber bei 300 rechnern in unterschiedlichen subnetzen will ich keine Tabelle mit den hostnames durchpingen sondern eben den iprange um zu sehen welcher dieser 300 noch online ist.

lg
tommy
Mitglied: Tommy-Tyrol
Tommy-Tyrol 13.11.2014 um 09:58:55 Uhr
Goto Top
Den Parameter a hab ich verwendet, möchte dann aber aus der Antwort des Pings genau nur den hostname in einer Variablen haben.
Mitglied: Tommy-Tyrol
Tommy-Tyrol 13.11.2014 um 11:44:18 Uhr
Goto Top
Hm Ja wahrscheinlich hast du recht, aber nichtsdestotrotz will ich die Leute informieren und wenn Sie jeden Tag diese Mails bekommen werden Sie wohl hoffentlich etwas sorgsamer umgehen - ich glaub halt mal an das Gute im Menschen ;)
lg
tommy
Mitglied: Tommy-Tyrol
Tommy-Tyrol 13.11.2014 um 11:45:42 Uhr
Goto Top
Hallo Klaus,

werde mir das mal ansehen und schauen ob ich damit das alles schaffen kann was ich machen möchte!
Herzlich Dank für den Tipp

Lg
Tommy
Mitglied: miniversum
Lösung miniversum 13.11.2014 aktualisiert um 14:23:56 Uhr
Goto Top
Hallo,

du musst dan nurnoch mit For den Namen aus dem ping -a befehl rausschneiden:
FOR /F "eol=[ tokens=5* delims= " %%i in ('ping -a -n 1 %IP%^|find "[%IP%]"') do echo %%i
Mitglied: Doskias
Doskias 13.11.2014 aktualisiert um 13:45:57 Uhr
Goto Top
Oder als PowerShell:

PS:> [system.net.dns]::GetHostByAddress("%IP%") | ft -Property hostname >> c:\Hostnames.txt

Schleife drum bauen und Fertig face-smile
Mitglied: rziemke
Lösung rziemke 17.11.2014 aktualisiert um 13:07:39 Uhr
Goto Top
Hallo,
Ich arbeite noch oft mit dem Befehl net sessions. Da hast Du gleich die richtigen Informationen.
Mitglied: Tommy-Tyrol
Tommy-Tyrol 17.11.2014 um 15:25:26 Uhr
Goto Top
Hi, danke für deinen Beitrag,

habe das Problem inzwischen gelöst
lg
tommy