Top-Themen

Aktuelle Themen (A bis Z)

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 Mit Batch IPs durchpingen und als PC Name in eine .TXT speichern

Mitglied: Spackenbremse

Spackenbremse (Level 1) - Jetzt verbinden

01.12.2007, aktualisiert 18.10.2012, 6532 Aufrufe, 12 Kommentare

Tach zusammen!
Ich hab mich dran gemacht, ein Programm zu schreiben, welches 256 IP's durchpingt und die IP's, die es findet, in eine .txt zu schreiben.
so lässt sich ermitteln, wieviele PCs in einem Netzewerk online sind und welche IP diese benutzen.

Das Programm siet zurzeit so aus:
01.
@ echo off
02.
cls
03.
title IPScan
04.
SET T=%TIME:~0,5%
05.

06.
rem ############
07.

08.
echo IP parameter eingeben (ip) Bsp: 192.168.ip.110
09.
set /p ip=
10.

11.
rem ############
12.

13.
echo Achtung! Durch druecken einer Taste startet der Scan. Dies kann einige Zeit
14.
echo in Anspruch nehmen.
15.
pause>nul
16.
>ipscan.txt echo IPScan
17.
echo Ping gestartet
18.

19.
rem ############
20.

21.
FOR /L %%a IN (0, 1, 255) DO ( ping 192.168.%ip%.%%a -n 1 -w 300 | find "TTL" >nul && echo IP erreichbar:   192.168.%ip%.%%a    >>ipscan.txt
22.
Echo Pinge 192.168.%ip%.%%a
23.
)
24.

25.
rem #############
26.

27.
echo Ping ausgefuert. Ipscan.txt wird nach dem druecken einer Taste geloescht.
28.
ipscan.txt
29.
pause>nul
30.
del ipscan.txt
31.
rem ##ende##
Der Inhalt der ipscan.txt (z.B.):
IPScan
IP erreichbar: 192.168.2.1

Das ganze funktioniert auch soweit, jetzt meine fragen:

1) Was kann ich besser machen ?
2) Besteht die Möglichkeit, dass in der .txt ebenfalls der PC Name steht? (also: IP erreichbar: 192.168.2.345 - PC Name)?
3) Gibt es irgendein Befehl, der das Programm, bzw den Ping beschleunigt? Bisher benötigt er für die 256 Pings ca 3 - 5 minuten.

Danke im Vorraus
mfg
Mitglied: bastla
01.12.2007, aktualisiert 18.10.2012
Hallo Spackenbremse und willkommen im Forum!

Falls Dich die Suchfunktion noch nicht hierher geführt hat: Rechnernamen zu seiner IP per Batch ermitteln, wie?

Zum Thema Beschleunigung: Je nach Verwendungszweck könnte vielleicht auch
01.
@echo off & setlocal
02.
for /f "delims=\ " %%i in ('net view^|findstr /b "\\"') do call :ProcessClient %%i
03.
goto :eof
04.

05.
:ProcessClient
06.
for /f "tokens=2" %%a in ('nslookup %1') do set IP=%%a
07.
echo %IP% - %1
genügen.

Grüße
bastla

P.S.: Wenn in Deiner Liste wirklich einmal
IP erreichbar: 192.168.2.345 - PC Name
steht, solltest Du anfangen, Dir Gedanken zu machen ...
Bitte warten ..
Mitglied: Spackenbremse
01.12.2007 um 14:32 Uhr
Danke für die schnelle Antwort!

das problem ist Folgendes:
Wie du an meinem code villt. gemerkt hast, bin ich noch ein "fortgeschrittener Anfänger". Ich hab gerde sehr viel probiert, und trozdem hats bei mir nicht getan.
Davor noch eine Frage:
net view hat bei mir auch gerne mal Aussetzter - d.h. er findet die PCs nicht, dabei stehen die neben mir. Manche findet er, manche wiederrum nicht.
(z.B. der Router wird unter net view nicht angezeigt.)
Besteht keine Möglichkeit das irgendwie über IP's herauszufinden?

Wenn möglich möchte ich aber mit meinem Programm erreichen, dass er alle IP's von 0 bis 255 durchkämmt.


Nochmal Danke für dein Code bastla, ich werd ihn auf jeden fall mal gebrauchen können!
mfg
Bitte warten ..
Mitglied: gnarff
01.12.2007 um 16:38 Uhr
Hallo backenbremse!

Du möchtest offensichtlich das Rad neu erfinden; was Du da vorhast geht doch flott und einfach mit nmap: nmap -sL [StartIP/End] > ipliste.txt, wobei in ipliste.txt die zu pingenden IPs stehen.

Mit
@echo off
for /f "tokens=*" %%I in (ipliste.txt) do call :pinger %%I
goto :eof

:pinger
ping -n 1 %1
if %ERRORLEVEL% ==0 echo %1 >> ergebnis.txt
:: DONE

In der ergebnis.txt sollten sich dann die erreichbaren IPs verzeichnet finden

saludos
gnarff
Bitte warten ..
Mitglied: Spackenbremse
01.12.2007 um 16:47 Uhr
Hallo backenbremse!

Du möchtest offensichtlich das Rad neu
erfinden; was Du da vorhast geht doch flott
und einfach mit nmap: nmap -sL [StartIP/End]
> ipliste.txt, wobei in ipliste.txt die zu
pingenden IPs stehen.

hallo gnarff!
danke auch dir für deine Antwort.
Den Befehl nmap kannte ich nocht nicht, und wieder habe ich etwas gelernt
funktioniert einwandfrei. DANKE
somit wäre das problemchen jetzt behoben!
danke an alle!
Bitte warten ..
Mitglied: gnarff
01.12.2007 um 16:52 Uhr
Hallo Spackenbremse,
gern geschehen!
saludos
gnarff
Bitte warten ..
Mitglied: Spackenbremse
01.12.2007 um 17:33 Uhr
Tut mir leid, ich muss euch noch einmal nerven:
gnarff, deine schleife geht echt gut, sie hört aber nichtmehr auf. bei IP 192.168.2.255 macht die mit 192.168.2.0 weiter, dann 192.168.2.1 usw....
ich habs mit if abfragen versucht, bin jedoch gescheitert.

01.
:pinger
02.
if %%I = 192.168.2.255 goto ende
03.
ping -n 1 -w 200 %1 >>ping.dat
04.
if %ERRORLEVEL% ==0 echo IP erreichbar:   %1 >> IPScan.txt
05.
echo Pinge %1
bin ich zu blöd um ne if abfrage zu machen( was ich nur selten brauche) oder ist mein gesammter gedanken gang falsch, die if abfrage dort hin zu machen?!?


dann wäre da noch die sache mit dem PC name... ist unmöglich oder?
Bitte warten ..
Mitglied: bastla
01.12.2007 um 17:58 Uhr
Hallo Spackenbremse!

Zu Deinem (ursprünglichen) Batch noch die gewünschte Ergänzung (als Unterprogramm)
01.
@echo off & setlocal
02.
cls
03.
title IPScan
04.

05.
set IPConst=192.168
06.
set Log=%temp%\ipscan.txt
07.

08.
rem ############
09.

10.
echo IP parameter eingeben (ip) Bsp: %IPConst%.ip.110
11.
set /p ip=
12.

13.
rem ############
14.

15.
echo Achtung! Durch druecken einer Taste startet der Scan. Dies kann einige Zeit
16.
echo in Anspruch nehmen.
17.
pause>nul
18.

19.
echo IPScan>%Log% 
20.
echo Ping gestartet
21.

22.
rem ############
23.

24.
for /L %%a in (1, 1, 254) do (
25.
	echo Pinge %IPConst%.%ip%.%%a
26.
	ping %IPConst%.%ip%.%%a -n 1 -w 300 | find "TTL" >nul && call :Ausgabe %IPConst%.%ip%.%%a
27.
)
28.

29.
rem #############
30.

31.
echo Ping ausgefuehrt. %Log% wird nach dem druecken einer Taste geloescht.
32.
%Log%
33.
pause>nul
34.
del %Log%
35.

36.
rem ##ende##
37.
goto :eof
38.

39.
:Ausgabe
40.
set Info=IP erreichbar:   %1
41.
for /f "tokens=2 delims=:. " %%i in ('nslookup %1 2^>nul^|findstr /b "Name:"') do set "Info=%Info%	- %%i"
42.
echo %Info% >>%Log%
und einige Hinweise:

Der Adressanteil "192.168" wird an vielen Stellen im Batch benötigt und daher, so wie zB auch der Dateiname der Logdatei, am Anfang in einer Variablen hinterlegt, was den Batch übersichtlicher und vor allem auch leichter anpassbar macht. Da diese Variablen nur innerhalb dieses Batches benötigt werden, sorgt ein "setlocal" dafür, dass sie am Ende wieder gelöscht werden.

Da die Logdatei ohnehin wieder gelöscht wird, wäre sie IMHO besser im Temp-Verzeichnis platziert.

Du hattest eine Variable %T% für die Startzeit gesetzt, aber in weiterer Folge nicht verwendet.

Die Zählschleife würde ich nur von 1 bis 254 laufen lassen (wiewohl sich der Zeitgewinn dadurch in Grenzen hält ).

Grüße
bastla

[Edit] Hatte Deinen zwischenzeitlichen Kommentar nicht gesehen. [/Edit]
Bitte warten ..
Mitglied: Spackenbremse
01.12.2007 um 18:14 Uhr
Hallo bastla.

Vielen dank für deine Mühe, das programm funktioniert einwandfrei!!

zu der T variable:
Ich dachte erst daran, die Zeit auch anzeigen zu lassen, in der er die IP anpingt, hab die idee aber dann wieder verworfen und vergessen T zu entfernen.


warum würdest du die schleife nur bis 254 laufen lassen?
immerhin besteht die möglichkeit, dass ein client die 255er ip hat.


mfg
Bitte warten ..
Mitglied: bastla
01.12.2007 um 18:29 Uhr
Hallo Spackenbremse!

192.168.x.255 ist doch die Broadcastadresse des Netzes (siehe zB http://de.wikipedia.org/wiki/Broadcast, http://dimk.de/tcp-ip/ausarbeitung/ad7.htm oder http://www.lmtm.de/InformatiXTM/netzwerke/texte/ipadressen.html).

Grüße
bastla
Bitte warten ..
Mitglied: gnarff
01.12.2007 um 18:40 Uhr
Hallo Spackenbremse!

Ich würde zusätzlich noch die Option -a beim Ping-Kommando verwenden, dabei werden die IP-Adressen dann aufgelöst.

Nmap und Ping beende ich immer mit Ctrl-c...
Muss ich mir noch Gedanken zu der Schleife machen?

saludos
gnarff
Bitte warten ..
Mitglied: Spackenbremse
01.12.2007 um 18:55 Uhr
hi gnarff

du darfst natürlich dir gedanken machen, mein programm funktioniert jetzt aber wunderbar, mit lösungen von euch beiden.

VIELEN DANK


@ bastla
interessant. ich weiß jedoch, das ich ein notebook mit .255 hab, ich schließ es gleich mal an, mal sehn was rauskommt. auch dir DANKE!!


ich seh schon, hier wird einem geholfen, ich werd das forum gleich mal weiterempfehlen
mfg
Bitte warten ..
Mitglied: bastla
01.12.2007 um 19:37 Uhr
Hallo Spackenbremse!

ich weiß jedoch, das ich ein notebook mit .255 hab
Dazu etwa: http://forum.de.selfhtml.org/archiv/2007/5/t153010/

ich werd das forum gleich mal weiterempfehlen
Merci.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch - .csv to .txt
gelöst Frage von freshman2017Batch & Shell11 Kommentare

Hallo Ihr, ich habe da nochmal eine leichte kurze Frage, vielleicht hat da jemand ein Code für mich. Folgende ...

Batch & Shell
Batch-Code in TXT auslagern
Frage von ElHuttiBatch & Shell10 Kommentare

Hallo, Ich möchte bei einem Batch-Mailprogramm, das man zum schreiben einer E-mail ändern muss, den Teil mit den Variablen ...

Batch & Shell
Batch mit for txt auslesen?
gelöst Frage von Mohji32Batch & Shell4 Kommentare

Hallo, ich habe mir den "Grundkurs" zu for schleifen im Board angeschaut aber leider nicht das hin bekommen was ...

Batch & Shell
Vorhandene TXT per Batch aktualisieren
gelöst Frage von 132749Batch & Shell6 Kommentare

Moin zusammen, ich benötige Eure Hilfe um den Inhalt einer vorhandenen TXT per Batch zu aktualisieren! So sieht meine ...

Neue Wissensbeiträge
Internet

Kommentar: Bundesregierung erwägt Ausschluss von Huawei im 5G-Netz - Unsere Presse wird immer sensationsgieriger

Information von Frank vor 1 StundeInternet1 Kommentar

Hier mal wieder ein schönes Beispiel für fehlgeleiteten Journalismus und Politik zu gleich. Da werden aus Gerüchten plötzlich Fakten, ...

Windows 10

Netzwerk-Bug in allen Windows 10-Versionen durch Januar 2019-Updates

Information von kgborn vor 5 StundenWindows 101 Kommentar

Nur ein kurzer Hinweis für Admins, die Windows 10-Clients im Portfolio haben. Mit den Updates vom 8. Januar 2019 ...

Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 1 TagWindows 102 Kommentare

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Sicherheit

Heise Beitrag Passwort-Sammlung mit 773 Millionen Online-Konten im Netz aufgetaucht

Information von Penny.Cilin vor 1 TagSicherheit6 Kommentare

Auf Heise Online ist folgender Beitrag veröffentlicht worden: Heise Beitrag passwörter geleakt Ich bin mir jetzt nicht ganz sicher, ...

Heiß diskutierte Inhalte
Switche und Hubs
Medienkonverter mit 12 oder 24 Ports gesucht
Frage von wmuellerSwitche und Hubs23 Kommentare

Guten Morgen, ich bin auf der Suche nach einem größeren Medienkonverter, der "stumpf" 1:1 die Ports auf über ein ...

Windows Server
Uhren gehen immer wieder falsch
Frage von killtecWindows Server23 Kommentare

Hallo, ich habe folgende Konstellation: 1. Physischer DC Div. Virtuelle DC's auf Hyper-V Servern Die Hyper-V-Server, der Physische DC ...

Debian
OpenSSH Login mit Public Key schlägt fehl, mit Passwort funktioniert
gelöst Frage von DKowalkeDebian19 Kommentare

Hallo zusammen, ich hatte hier schon nach einer Anleitung für einen SFTP Server mit Linux gefragt, habe dort auch ...

Windows Server
Client in die Domäne einbinden - Allgemeine Frage dazu
gelöst Frage von RalphTWindows Server19 Kommentare

Moin, ich habe 2 DCs in einer Hauptstelle und 2 DCs in einer Nebenstelle. Ich bringe in der Hauptstelle ...