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, 6457 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

DFSRdiag per Batch ausführen und Ergebnis in .txt speichern

Frage von SynteticBatch & Shell6 Kommentare

Hallo, ich möchte mittels DFSRdiag.exe raus finden ob sich noch Dateien zwischen unseren DFS Servern befinden, die zur Replikation ...

Batch & Shell

(BATCH:) Zeilenweise Txt auslesen und in eine Variable speichern

gelöst Frage von NincedBatch & Shell20 Kommentare

Hallo Leute, Ich weiß, es ist ein alter Hut, aber ich habe da ein paar Fragen bezüglich der for-Schleife ...

Netzwerkmanagement

Seriennummer als PC Name im Firmennetz?

Frage von BlueShadow9Netzwerkmanagement27 Kommentare

Hallo, nur eine kurze Pro und Contra Frage zur PC Namensgebung in einem Firmennetzwerk. Was spricht dafür und dagegen ...

Batch & Shell

Letzte Zeile einer .txt in eine andere .txt ausschneiden per Batch

gelöst Frage von AlexIOTBatch & Shell4 Kommentare

Hallo zusammen, zu meinem obrigen Thema habe ich leider nur in Richtung löschen und nicht in Richtung ausschneiden etwas ...

Neue Wissensbeiträge
Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 8 StundenSicherheit

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 17 StundenInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 1 TagErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 1 TagWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server36 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1028 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgbornMicrosoft17 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser15 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...