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

Printed on: April 18, 2024 at 05:04 o'clock

Member: laster
Solution laster Nov 12, 2014, updated at Nov 13, 2014 at 13:23:49 (UTC)
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
Member: Meierjo
Meierjo Nov 13, 2014 at 07:37:56 (UTC)
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
Member: Doskias
Doskias Nov 13, 2014 at 08:22:15 (UTC)
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.
Member: bremserfhfb
bremserfhfb Nov 13, 2014 at 08:36:21 (UTC)
Goto Top
Hallo Tommy,

ich mache inzwischen die meisten Aufgaben über AutoIT.

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

Gruß,
Klaus
Member: Tommy-Tyrol
Tommy-Tyrol Nov 13, 2014 at 08:57:53 (UTC)
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
Member: Tommy-Tyrol
Tommy-Tyrol Nov 13, 2014 at 08:58:55 (UTC)
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.
Member: Tommy-Tyrol
Tommy-Tyrol Nov 13, 2014 at 10:44:18 (UTC)
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
Member: Tommy-Tyrol
Tommy-Tyrol Nov 13, 2014 at 10:45:42 (UTC)
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
Member: miniversum
Solution miniversum Nov 13, 2014 updated at 13:23:56 (UTC)
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
Member: Doskias
Doskias Nov 13, 2014 updated at 12:45:57 (UTC)
Goto Top
Oder als PowerShell:

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

Schleife drum bauen und Fertig face-smile
Member: rziemke
Solution rziemke Nov 17, 2014 updated at 12:07:39 (UTC)
Goto Top
Hallo,
Ich arbeite noch oft mit dem Befehl net sessions. Da hast Du gleich die richtigen Informationen.
Member: Tommy-Tyrol
Tommy-Tyrol Nov 17, 2014 at 14:25:26 (UTC)
Goto Top
Hi, danke für deinen Beitrag,

habe das Problem inzwischen gelöst
lg
tommy