Tool - ArpScanner - Hosts im Subnet ermitteln mit 100 Prozent erfolg - Only private net - 10 Sec.... Update 7
Arp-Mapping
Bevor der Pc in einem Lan verbindung zu einem Gerät-Pc im subnet herstellt, löst der Kernel ein Arp anfrage aus, sofern er die Daten nicht schon in seinem ARP-cache hat.
Dieser Cache speichert solche Ip und Mac Adressen über ein Zeitraum der vom Kernel des jeweiligen Betriebsystems festgelegt ist.
Erst wenn ein ARP REPLY eintrifft und er es gespeichert hat in seinem ARP-cache dann weiss er mit welcher Machine er sich im Netzwerk verbinden muss.
Auf weitere details des Arp-protokoll möchte ich nicht eingehen.
Die Arp-sweeps verspechen 100 Prozent erfolg, den Ping könnte durch eine Firewall blockiert werden =ICMP Typ 0 code 8 und damit die ausgabe fälschen.
Mit meinem Programm sende ich ein Ping packet, aber statdessen das ich die Ausgabe der Ping.exe auswerte,werte ich den Arp-cache aus. Wenn dort die Ip + Mac gespeichert ist kann man sicher sein das der host UP ist.
Das ganze nennt man Arp mapping.
Und nicht vergessen Arp funktioniert immer ...weil es sozusagen das rückrad von von Ethernet ist.
Anders gesagt ohne Arp geht nichts! Da im Lan mit Mac adressen gearbeitet wird!
Oder man müsste allen Host's im Lan eine Statische Ip zuweisen. Und jeweils bei allen machinen die Ip + Mac im Arp Cache von allen Stationen im Lan eintragen.
Example:
(Arp Cache)(arp -s 172.16.0.1 00-23-23-23-23-23)
es gibt nur eins 0 or 1 [lowbyte]
@Echo off & Color 0A & Setlocal
Title Lowbyte
REM ~~~~~~~
for /L %%q in (1,1,15) do call :demo
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo. ) LOADING
echo.
echo.
echo.
ping -n 3 localhost>nul & endlocal & setlocal
CLS
Title MP-ARP sweeper
goto :MainC
:demo
cls
echo.
echo.
echo.
echo. %random%
echo. %random%
echo. %random%
echo. ) LOWBYTE
echo. %random%
echo. %random%
echo. %random%
ping -n 1 localhost>nul
goto :eof
:MainC
REM ~~~~~~~
:RE
Echo.________________________________________________________________________
Echo.
Echo. MP_ARP sweeper 1.45
Echo.________________________________________________________________________
Echo.
Echo.
Echo.Die ersten 3 Oktette der Address Range angeben ...
Echo.
Echo.Syntax ( 172.16.3 ) -255)
Echo.
Echo.Input: & set /P A=
Set TMEM=%SYSTEMROOT%\TEMP\
PUSHD %TMEM%
for /L %%r in (16,1,32) do if %A:~0,6% == 172.%%r goto:go_main
for /L %%m in (1,1,255) do if %A:~0,4% == 10.%%m goto:go_main
if %A:~0,7% == 192.168 goto:go_main
if exist messg1.vbs (
goto:Jumpx
) else (
Echo msgbox"Only Private Class C Network",vbCritical , "Only Private-net"> messg1.vbs
)
:Jumpx
start messg1.vbs
CLS
goto:RE
:go_main
CLS
Echo.
Echo.Die Range %A%.1 - %A%.255 wird gescannt ..
Echo.
Ping -n 2 localhost>NUL
ipconfig | findstr "Standardgateway" > sgw.txt
if %ERRORLEVEL%==1 (
ipconfig | findstr "Default Gateway" > sgw.txt
)
for /F "delims=" %%p in (sgw.txt) do @set VARGW=%%p
set SGW=%VARGW:~44,56%
@Ping -n 1 -w 50 %SGW%>NUL
@Arp -d
For /L %%i in (1,1,255) do Echo ping -n 1 -l 0 -f -i 2 -w 1 %A%.%%i>nul >> threads%%i.cmd
For /L %%y in (1,1,255) do Echo.Exit >> threads%%y.cmd
Echo For /L %%%%z in (26,1,50) do Start /HIGH /B threads%%%%z.cmd>NUL >> threadpool_id1.cmd & Echo.Exit >> threadpool_id1.cmd
Echo For /L %%%%w in (1,1,25) do Start /HIGH /B threads%%%%w.cmd>NUL >> threadpool_id2.cmd & Echo.Exit >> threadpool_id2.cmd
Echo For /L %%%%x in (76,1,100) do Start /HIGH /B threads%%%%x.cmd>NUL >> threadpool_id3.cmd & Echo.Exit >> threadpool_id3.cmd
Echo For /L %%%%u in (51,1,75) do Start /HIGH /B threads%%%%u.cmd>NUL >> threadpool_id4.cmd & Echo.Exit >> threadpool_id4.cmd
Echo For /L %%%%q in (126,1,150) do Start /HIGH /B threads%%%%q.cmd>NUL >> threadpool_id5.cmd & Echo.Exit >> threadpool_id5.cmd
Echo For /L %%%%d in (101,1,125) do Start /HIGH /B threads%%%%d.cmd>NUL >> threadpool_id6.cmd & Echo.Exit >> threadpool_id6.cmd
Echo For /L %%%%h in (175,1,200) do Start /HIGH /B threads%%%%h.cmd>NUL >> threadpool_id7.cmd & Echo.Exit >> threadpool_id7.cmd
Echo For /L %%%%t in (151,1,175) do Start /HIGH /B threads%%%%t.cmd>NUL >> threadpool_id8.cmd & Echo.Exit >> threadpool_id8.cmd
Echo For /L %%%%s in (226,1,255) do Start /HIGH /B threads%%%%s.cmd>NUL >> threadpool_id9.cmd & Echo.Exit >> threadpool_id9.cmd
Echo For /L %%%%r in (201,1,225) do Start /HIGH /B threads%%%%r.cmd>NUL >> threadpool_id10.cmd & Echo.Exit >> threadpool_id10.cmd
For /L %%b in (1,1,10) do Start /HIGH /B /I threadpool_id%%b.cmd >NUL & Echo. & Echo.Subnet zu %%b0%% Prozent gescannt .. & Ping -n 1 -w 100 localhost>NUL & CLS & Echo. & Echo.
Ping -n 2 -w 1 localhost>NUL
POPD
Ping -n 1 localhost>NUL && arp -a >> arpcache.txt
type arpcache.txt | findstr "statisch">> arp_req.txt
if %ERRORLEVEL%==1 (
type arpcache.txt | findstr "static">> arp_req.txt
)
type arpcache.txt | findstr "dynamisch">> arp_req.txt
if %ERRORLEVEL%==1 (
type arpcache.txt | findstr "dynamic">> arp_req.txt
)
CLS & echo. & echo. & echo.
Echo.Scannvorgang der Ip-Range %A%.1 - %A%.255 ist abgeschlossen ..
Echo. & Echo. & Echo.
Ipconfig | findstr "IP-Adresse"> LocalIP.txt
if %ERRORLEVEL%==1 (
Ipconfig | findstr "IP Address"> LocalIP.txt
)
For /F "delims=" %%k in (LocalIP.txt) do @set "Pvar=%%k"
Set request=%Pvar:~44,60%
Echo. %request% -UP- Localhost
For /F "tokens=1,2" %%i in (arp_req.txt) do call :ProcessLine "%%i" "%%j"
Echo.
Echo.
Echo.
Echo.
Echo.
Echo.All Activ Hosts im Subnet ..
Echo.
Echo.
Echo.
Echo.Output saving ?..y/n
Set /P NOYES=
if y == %NOYES% goto:c_logf
if Y == %NOYES% goto:c_logf
:ret_log
PUSHD %TMEM%
if exist sgw.txt erase sgw.txt
for /L %%i in (1,1,255) do if exist threads%%i.cmd erase threads%%i.cmd
for /L %%l in (1,1,10) do if exist threadpool_id%%l.cmd erase threadpool_id%%l.cmd
POPD
if exist arpcache.txt erase arpcache.txt
if exist arp_req.txt erase arp_req.txt
if exist LocalIP.txt erase LocalIP.txt
if exist messg1.vbs erase messg1.vbs
Title MP-ARP sweeper
ENDLOCAL && CLS
goto:RE
:c_logf
Echo.Scan .. vom ## DATE:%DATE% ## Time:%TIME% ## >> Logfile.log
Echo. >> Logfile.log
Echo. %request% -UP- Localhost >> Logfile.log
For /F "tokens=1,2" %%d in (arp_req.txt) do call :ProcessLine "%%d" "%%e" >> Logfile.log
Echo. >> Logfile.log
Echo. >> Logfile.log
Echo. & Echo. & Echo. >> Logfile.log
Echo.All activ Host's im Subnet .. >> Logfile.log
Echo. & Echo. & Echo. >> Logfile.log
CLS
Echo.
Echo. Output wurde im Logfile gespeichert ...
ping -n 3 localhost>nul
goto:ret_log
:ProcessLine
set "sss=%~2%"
set "var=%sss:~0,8%"
set "VE=not found"
for /f "tokens=2*" %%c in ('findstr /i "%var%" IEEEMACLIST.txt') do set "VE=%%d"
Echo. %~1 -UP- MAC = %~2 - %VE%
goto :eof
REM # lowbyte #
Bevor der Pc in einem Lan verbindung zu einem Gerät-Pc im subnet herstellt, löst der Kernel ein Arp anfrage aus, sofern er die Daten nicht schon in seinem ARP-cache hat.
Dieser Cache speichert solche Ip und Mac Adressen über ein Zeitraum der vom Kernel des jeweiligen Betriebsystems festgelegt ist.
Erst wenn ein ARP REPLY eintrifft und er es gespeichert hat in seinem ARP-cache dann weiss er mit welcher Machine er sich im Netzwerk verbinden muss.
Auf weitere details des Arp-protokoll möchte ich nicht eingehen.
Die Arp-sweeps verspechen 100 Prozent erfolg, den Ping könnte durch eine Firewall blockiert werden =ICMP Typ 0 code 8 und damit die ausgabe fälschen.
Mit meinem Programm sende ich ein Ping packet, aber statdessen das ich die Ausgabe der Ping.exe auswerte,werte ich den Arp-cache aus. Wenn dort die Ip + Mac gespeichert ist kann man sicher sein das der host UP ist.
Das ganze nennt man Arp mapping.
Und nicht vergessen Arp funktioniert immer ...weil es sozusagen das rückrad von von Ethernet ist.
Anders gesagt ohne Arp geht nichts! Da im Lan mit Mac adressen gearbeitet wird!
Oder man müsste allen Host's im Lan eine Statische Ip zuweisen. Und jeweils bei allen machinen die Ip + Mac im Arp Cache von allen Stationen im Lan eintragen.
Example:
(Arp Cache)(arp -s 172.16.0.1 00-23-23-23-23-23)
es gibt nur eins 0 or 1 [lowbyte]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 67097
Url: https://administrator.de/contentid/67097
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
42 Kommentare
Neuester Kommentar
ich wil nicht sagen das ich der erste bin
der sowas macht im gegenteil es geht ja in
erster linie ums prinzip.
Bin es aber wohl...
Deine Orthographie ist unter aller Sau - das muss ich jetzt mal so sagen.
Mit Nmap kannst Du auch Pingsweeps ausfuehren oder mit Ping Sweep von SolarWinds.
saludos
gnarff
Feine Sache!!!
Kann man das evtl. noch etwas anpassen, um auch einen Adresskreis von sagen wir mal 1.1.1.x scannen zu können ??
Gruß
Style
Kann man das evtl. noch etwas anpassen, um auch einen Adresskreis von sagen wir mal 1.1.1.x scannen zu können ??
Gruß
Style
Hi @lowbyte1,
'n ganz nettes Feature wäre noch, IP-Range und Logfile per Übergabeparameter anzugeben.
Ausserdem weiss ich nicht, ob das so stimmt, aber als Endergebnis bekomme ich in meinem Netz folgendes heraus:
Gruß
Snow
'n ganz nettes Feature wäre noch, IP-Range und Logfile per Übergabeparameter anzugeben.
Ausserdem weiss ich nicht, ob das so stimmt, aber als Endergebnis bekomme ich in meinem Netz folgendes heraus:
Scan .. vom ## DATE:23.02.2010 ## Time:10:01:54.09 ##
~44,60 -UP- Localhost
All activ Host's im Subnet ..
Gruß
Snow
Ok, Fehler gefunden.
Eigentlich ganz einfach:
Englischs System --> Gibt in der Ausgabe von ipconfig keine Deutschen Wörter, allerdings englische.
Dachte zuerst, es könnte an der IPv6-Kompatiblität meines Systems liegen, deshalb hab ich an die pings jeweils ein -4 angehängt (was dann ja auch nichts gebracht hat).
Deshalb solltest du Zeile 128:
änder in
Genauso mit dem Standardgateway in Zeile 90:
und mit dem arpcache-scan in den zeilen 119 und 120:
Damit hättest du dann schonmal knapp 50% aller WindowsXP-Rechner weltweit abgedeckt...
Gruß
Snow
PS:
Zeile
Liese sich auch noch in
änder. Gibt eine wesentlich schönere ausgabe, sollte die IEEEMACLIST.txt nicht vorhanden sein.
PPS:
unter http://snowman25.de/IEEEMACLIST.txt ist eine gekürzte Mac-Liste verfügbar.
Habe ich bloß schnell aus der Originalen per erstellt.
Eigentlich ganz einfach:
Englischs System --> Gibt in der Ausgabe von ipconfig keine Deutschen Wörter, allerdings englische.
Dachte zuerst, es könnte an der IPv6-Kompatiblität meines Systems liegen, deshalb hab ich an die pings jeweils ein -4 angehängt (was dann ja auch nichts gebracht hat).
Deshalb solltest du Zeile 128:
Ipconfig | findstr "IP-Adresse"> LocalIP.txt
Ipconfig | findstr "IP-Adresse"> LocalIP.txt
if %ERRORLEVEL%==1 (
Ipconfig | findstr "IP Address"> LocalIP.txt
)
Genauso mit dem Standardgateway in Zeile 90:
ipconfig | findstr "Standardgateway" > sgw.txt
if %ERRORLEVEL%==1 (
ipconfig | findstr "Default Gateway" > sgw.txt
)
und mit dem arpcache-scan in den zeilen 119 und 120:
type arpcache.txt | findstr "statisch">> arp_req.txt
if %ERRORLEVEL%==1 (
type arpcache.txt | findstr "static">> arp_req.txt
)
type arpcache.txt | findstr "dynamisch">> arp_req.txt
if %ERRORLEVEL%==1 (
type arpcache.txt | findstr "dynamic">> arp_req.txt
)
Damit hättest du dann schonmal knapp 50% aller WindowsXP-Rechner weltweit abgedeckt...
Gruß
Snow
PS:
Zeile
for /f "tokens=2*" %%c in ('findstr /i "%var%" IEEEMACLIST.txt') do set "VE=%%d"
if exist IEEEMACLIST.txt (
for /f "tokens=2*" %%c in ('findstr /i "%var%" IEEEMACLIST.txt') do set "VE=%%d"
)
PPS:
unter http://snowman25.de/IEEEMACLIST.txt ist eine gekürzte Mac-Liste verfügbar.
Habe ich bloß schnell aus der Originalen per
type IEEEMACLIST.txt | findstr "(hex)" >>IEEEMACLIST_new.txt
Zitat von @Snowman25:
unter http://snowman25.de/IEEEMACLIST.txt ist eine gekürzte Mac-Liste verfügbar.
Jetzt verfügbar unter http://administrator.snowman25.de/IEEEMACLIST.txtunter http://snowman25.de/IEEEMACLIST.txt ist eine gekürzte Mac-Liste verfügbar.
Das Skript ist toll. Das kommt in meine Sammlung.
Eine Sache allgmeiner Natur muss aber noch angemerkt werden:
Das beantworten von ARP Anfragen kann durchaus geblockt werden. Ich habe das mal bei Norton gesehen.
Es gibt eine Einstellung, dass nur Anfragen von Hosts mit den man "reden möchte" beantwortet werden (Stealth mode) oder so.
Diese Systeme erkennt das Skript dann nicht.
Eine Sache allgmeiner Natur muss aber noch angemerkt werden:
Das beantworten von ARP Anfragen kann durchaus geblockt werden. Ich habe das mal bei Norton gesehen.
Es gibt eine Einstellung, dass nur Anfragen von Hosts mit den man "reden möchte" beantwortet werden (Stealth mode) oder so.
Diese Systeme erkennt das Skript dann nicht.
Salü Lowbyte,
einen "Bock" habe ich bei deiner Version - genau den Bock, den ich bei meinem Beispiel umgangen habe.
Grund sind die "vielen" Nics die mittlerweile doch eher üblich als die Ausnahme sind.
Dass mich (zum allerersten mal in 3 Jahren) meine Sonicwall rausgeworfen hat, nachdem ich dein Script laufen liess,
- sortiere ich mal in die Kategorie Zufall ein, denn bei dem Wetter geh ich liebe mit dem Kindl auf den Spielplatz.
edit - nein - kein Zufall...
C:\Dokumente und Einstellungen\Ti.Mobeil>ipconfig /all
Windows-IP-Konfiguration
Ein interner Fehler ist aufgetreten: Ein an das System angeschlossenes Gerät fun
ktioniert nicht.
Wenden Sie sich an den Microsoft Software Service, um weitere Hilfe zu erhalten.
Zusätzliche Informationen: Unbekannter Medienstatuscode
Und die Sonicwall wirft mich (den Rechner) nach dem Scriptlauf immer raus - der Gag mit 255 einzelnen zweizeilern mal ordentlich last auf alles zu geben, sorry - ist nix für mich und die FW denkt sich "ihren" Teil und macht dementsprechend das, wozu Sie da ist.
die Erases hab ich deaktiviert und:
jetzt mal "richtig -also so wie das einzugeben ist und nicht so, wie du es im
Da fehlen "einige" Systeme, die gerade eingeschaltet und im gleichen Netz sind - mußt du mir "leider" so glauben.
Du siehst, trotz eingabe des Netzes - wenn man die Zahlen so eingibt, wie du es vorschlägst - dann versucht er den mittleren Nic zu nehmen? - nicht den ersten, oder den letzten oder den, der zu dem Netz gehört und das funktioniert natürlich auch nur dann, wenn der mittlere (zufällig) der aktive ist.
Und wenn ich es so eingebe, wie es sein soll - dann findet er außer meiner Sonicwall nix - also irgendwo ist der Code noch arg unrund.
btw: Das einzige, was ich an deinem ganz kurz gelesenen Code bemerkt habe - ist
Und anstatt "umständlich - wie es dir Snow gezeigt hat - je nach OS Sprache nach der IP A oder IPadresse zu suchen, kannst du bequem mit
arbeiten. Du schreibst ja - ist für XP optimiert.
Ansonsten mein Weg nach Rom wäre indem Fall:
Wie gesagt - nur kurz überflogen.
btw: mir ging es eigentlich nicht um die Funktion, sondern um das Zeigen, wie man anhand von Befehlen - die "formatierte Listen" ausspucken - diese auswerten und "sinnvoll" kürzen kann. Das diese Abfrage in einem sauberen Netz eigentlich vollkommen überflüssig ist da sind wir uns beide ja hoffentlich einig.
Und ein arger Kritikpunkt meinerseits sollte auch noch erlaubt sein - dein Code besteht nur aus Befehlen - die wenigsten Zeilen sind "unten" kommentiert.
Für eine Anleitung nach heutigen Massstäben etwas dürftig.
Und das sowohl deine, als auch meine Version in anderer Hinsicht kompletter Murks ist, weil wir wegen Speed irgendwelche Krücken nehmen (ein Rechner im halbschlaf antwortet nicht auf einen einzelnen Ping) - ist ja auch klar.
Auch ein simples ping netzwerk -> ping 192.168.0.255 wirkt nicht immer auf alles.
Nur, warum du so auf "ARP" bestehst - so richtig verstanden warum du dann deine Lösung so geschrieben hast - verstehe ich nicht.
ARP geht nicht über Router/Gateways - denn den Arp Cache für die anderen Netze halten die vor - nicht der lokale Rechner.
Warum man dann umständlich die ersten 3 Oktette des zu durchsuchenden Netztes eingeben soll - ist mir ehrlich geschrieben schleierhaft.
Wie oben geschrieben, mit den Taschenspüielertricks, die du da nimmst - kam man vielleicht mal durch, aber heutige Sicherheitssysteme erkennen einen nicht nur angeblichen Aussähversuch und kicken deinen Nic.
Wenn - wie bei mir - anderen Notebook mehrere nics gefunden werden, kannst du doch bequem diese auslesen, das jeweilige GW anpingen und wenn das antwortet, weißt du welches Netz aktiv ist und sich durchsuchen läßt.
Daher und weil - wie geschrieben du wenig und nur außrhalb des Codes dokumentierst (du kannst dir denken, was die Jungs haben wollen, was Sie machen und dass die sich später nicht mehr an den Ursprung wo das Script herkam erinnern) - gäbe es von mir ein mangelhaft. Aber ich lass das mal und hoff du holst das nach.
Gruß
einen "Bock" habe ich bei deiner Version - genau den Bock, den ich bei meinem Beispiel umgangen habe.
Grund sind die "vielen" Nics die mittlerweile doch eher üblich als die Ausnahme sind.
Dass mich (zum allerersten mal in 3 Jahren) meine Sonicwall rausgeworfen hat, nachdem ich dein Script laufen liess,
- sortiere ich mal in die Kategorie Zufall ein, denn bei dem Wetter geh ich liebe mit dem Kindl auf den Spielplatz.
edit - nein - kein Zufall...
C:\Dokumente und Einstellungen\Ti.Mobeil>ipconfig /all
Windows-IP-Konfiguration
Ein interner Fehler ist aufgetreten: Ein an das System angeschlossenes Gerät fun
ktioniert nicht.
Wenden Sie sich an den Microsoft Software Service, um weitere Hilfe zu erhalten.
Zusätzliche Informationen: Unbekannter Medienstatuscode
Und die Sonicwall wirft mich (den Rechner) nach dem Scriptlauf immer raus - der Gag mit 255 einzelnen zweizeilern mal ordentlich last auf alles zu geben, sorry - ist nix für mich und die FW denkt sich "ihren" Teil und macht dementsprechend das, wozu Sie da ist.
meine Ipconfig - zur Abwechslung mal mit parameter -all Die mac Adressen anonymisiert.
Windows-IP-Konfiguration
Hostname. . . . . . . . . . . . . : Timobeil050
Primäres DNS-Suffix . . . . . . . :
Knotentyp . . . . . . . . . . . . : Hybrid
IP-Routing aktiviert. . . . . . . : Nein
WINS-Proxy aktiviert. . . . . . . : Nein
Ethernetadapter VMware Network Adapter VMnet8:
Verbindungsspezifisches DNS-Suffix:
Beschreibung. . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8
Physikalische Adresse . . . . . . : 00-50-xx-xx-xx-xx
DHCP aktiviert. . . . . . . . . . : Nein
IP-Adresse. . . . . . . . . . . . : 192.168.153.1
Subnetzmaske. . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . :
Ethernetadapter VMware Network Adapter VMnet1:
Verbindungsspezifisches DNS-Suffix:
Beschreibung. . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet1
Physikalische Adresse . . . . . . : 00-50-xx-xx-xx-xx
DHCP aktiviert. . . . . . . . . . : Nein
IP-Adresse. . . . . . . . . . . . : 192.168.204.1
Subnetzmaske. . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . :
Ethernetadapter Drahtlos:
Verbindungsspezifisches DNS-Suffix:
Beschreibung. . . . . . . . . . . : Intel(R) PRO/Wireless 3945ABG Network Connection
Physikalische Adresse . . . . . . : 00-1C-xx-xx-xx-xx
DHCP aktiviert. . . . . . . . . . : Ja
Autokonfiguration aktiviert . . . : Ja
IP-Adresse. . . . . . . . . . . . : 192.168.199.100
Subnetzmaske. . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 192.168.199.1
DHCP-Server . . . . . . . . . . . : 192.168.199.1
DNS-Server. . . . . . . . . . . . : 192.168.199.1
Lease erhalten. . . . . . . . . . : Samstag, 3. Juli 2010 11:42:06
Lease läuft ab. . . . . . . . . . : Sonntag, 4. Juli 2010 11:42:06
Programmlauf
__________________________________________________
MP_ARP sweeper 1.45
__________________________________________________
Die ersten 3 Oktette der Address Range angeben ...
Syntax ( 172.16.3 ) -255)
Input:
192.168.199 -255
Die Range 192.168.199 -255.1 - 192.168.199 -255.255 wird gescannt ..
Scannvorgang der Ip-Range 192.168.199 -255.1 - 192.168.199 -255.255 ist abgeschlossen ..
- du siehst - es wurde 192.168.199 -255 eingegeben, aber machen tut er anscheinend Ip-Range 192.168.199 -255.1 - 192.168.199 -255.255 ,
also 5 okette. Da solltest du die Anweisung, was einzugeben ist - dautauglicher beschreiben - nur die ersten drei oktette - ohne () und ohne -255.
Das er so in Wahrheit was ganz anderes macht - siehe weiter unten bei den Logfiles.
Scannvorgang der Ip-Range 192.168.199 -255.1 - 192.168.199 -255.255 ist abgeschlossen ..
- du siehst - es wurde 192.168.199 -255 eingegeben, aber machen tut er anscheinend Ip-Range 192.168.199 -255.1 - 192.168.199 -255.255 ,
also 5 okette. Da solltest du die Anweisung, was einzugeben ist - dautauglicher beschreiben - nur die ersten drei oktette - ohne () und ohne -255.
Das er so in Wahrheit was ganz anderes macht - siehe weiter unten bei den Logfiles.
-UP- Localhost
All Activ Hosts im Subnet ..
Output saving ?..y/n
die Erases hab ich deaktiviert und:
Arpcache.txt
Keine ARP-Eintr„ge gefunden.
Keine ARP-Eintr„ge gefunden.
LocalIP
Windows-IP-Konfiguration
Windows-IP-Konfiguration
Logfile.txt
Scan .. vom ## DATE:03.07.2010 ## Time:11:42:17,79 ##
192.168.204.1 -UP- Localhost
All activ Host's im Subnet ..
Scan .. vom ## DATE:03.07.2010 ## Time:11:42:17,79 ##
192.168.204.1 -UP- Localhost
All activ Host's im Subnet ..
jetzt mal "richtig -also so wie das einzugeben ist und nicht so, wie du es im
Scannvorgang der Ip-Range 192.168.199.1 - 192.168.199.255 ist abgeschlossen ..
192.168.199.100 -UP- Localhost
192.168.199.1 -UP- MAC = xx--xx-xx-xx-xx-xx - xyz.
All Activ Hosts im Subnet ..
Du siehst, trotz eingabe des Netzes - wenn man die Zahlen so eingibt, wie du es vorschlägst - dann versucht er den mittleren Nic zu nehmen? - nicht den ersten, oder den letzten oder den, der zu dem Netz gehört und das funktioniert natürlich auch nur dann, wenn der mittlere (zufällig) der aktive ist.
Und wenn ich es so eingebe, wie es sein soll - dann findet er außer meiner Sonicwall nix - also irgendwo ist der Code noch arg unrund.
btw: Das einzige, was ich an deinem ganz kurz gelesenen Code bemerkt habe - ist
42. :RE
158. if y == %NOYES% goto:c_logf
159. if Y == %NOYES% goto:c_logf
zu lösen.159. if Y == %NOYES% goto:c_logf
wäre doch simpler mit
158. if /i y == %NOYES% goto:c_logf
158. if /i y == %NOYES% goto:c_logf
Und anstatt "umständlich - wie es dir Snow gezeigt hat - je nach OS Sprache nach der IP A oder IPadresse zu suchen, kannst du bequem mit
ipconfig -all|findstr "IP.Adres"
Ansonsten mein Weg nach Rom wäre indem Fall:
for /f "tokens=2 delims=" %%a in ('"ping %computername% -n 1|find "[""') do echo %%a
Wie gesagt - nur kurz überflogen.
btw: mir ging es eigentlich nicht um die Funktion, sondern um das Zeigen, wie man anhand von Befehlen - die "formatierte Listen" ausspucken - diese auswerten und "sinnvoll" kürzen kann. Das diese Abfrage in einem sauberen Netz eigentlich vollkommen überflüssig ist da sind wir uns beide ja hoffentlich einig.
Und ein arger Kritikpunkt meinerseits sollte auch noch erlaubt sein - dein Code besteht nur aus Befehlen - die wenigsten Zeilen sind "unten" kommentiert.
Für eine Anleitung nach heutigen Massstäben etwas dürftig.
Und das sowohl deine, als auch meine Version in anderer Hinsicht kompletter Murks ist, weil wir wegen Speed irgendwelche Krücken nehmen (ein Rechner im halbschlaf antwortet nicht auf einen einzelnen Ping) - ist ja auch klar.
Auch ein simples ping netzwerk -> ping 192.168.0.255 wirkt nicht immer auf alles.
Nur, warum du so auf "ARP" bestehst - so richtig verstanden warum du dann deine Lösung so geschrieben hast - verstehe ich nicht.
ARP geht nicht über Router/Gateways - denn den Arp Cache für die anderen Netze halten die vor - nicht der lokale Rechner.
Warum man dann umständlich die ersten 3 Oktette des zu durchsuchenden Netztes eingeben soll - ist mir ehrlich geschrieben schleierhaft.
Wie oben geschrieben, mit den Taschenspüielertricks, die du da nimmst - kam man vielleicht mal durch, aber heutige Sicherheitssysteme erkennen einen nicht nur angeblichen Aussähversuch und kicken deinen Nic.
Wenn - wie bei mir - anderen Notebook mehrere nics gefunden werden, kannst du doch bequem diese auslesen, das jeweilige GW anpingen und wenn das antwortet, weißt du welches Netz aktiv ist und sich durchsuchen läßt.
Daher und weil - wie geschrieben du wenig und nur außrhalb des Codes dokumentierst (du kannst dir denken, was die Jungs haben wollen, was Sie machen und dass die sich später nicht mehr an den Ursprung wo das Script herkam erinnern) - gäbe es von mir ein mangelhaft. Aber ich lass das mal und hoff du holst das nach.
Gruß