| Decicumzici a întrebat:

Ma puteti ajuta si pe mine cu un cod batch (.bat) pentru a face mai automata o scanare de ip interne ale unei retele pentru a vedea available hosts. Am reusit sa fac 3 sferturi din ea dar nu e complet automata. Dupa ce imi arata gateway trebuie sa il scriu eu manual primele 3 seturi de cifre (din 192.168.0.1 trebuie sa scriu 192.168.0) sa scaneze de la 1 la 255. As vrea sa ia singur acele 3 seturi de numere din gateway. Si as mai avea o intrebare, cand scaneaza hosturile astept cca 15 minute pentru a finaliza 255 scanuri. As vrea sa arate cat % a facut din tot sa arate constant %. Codul ce am facut il pun mai jos:

@echo off

title Test ip's by default ping "TTL"

:loop

cls

Set /a num=(%Random% %%9)+1



echo This is your internal ip:

for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "IPv4"') do set ip=%%b

set ip=%ip:~1%

echo %ip%

echo.



echo Router's gateway:

set /a 'DefaultGateway'

@For /f "tokens=3" %%* in (
'route.exe print ^|findstr "\"'
) Do @Set "DefaultGateway=%%*"
@echo %DefaultGateway%
echo.



@echo off

echo Write the first 3 set of numbers of gateway (don't write last set):

@echo off

set /p Gateway=

echo.



echo Revealing available hosts...



echo Started at:

time /t

echo.



FOR /L %%G IN (2, 1, 255) DO (ping -n 1 %Gateway%.%%G) | find "TTL"



echo.

echo Finished at:

time /t



echo Finished...



pause

1 răspuns:
| Korkodeln a răspuns:

In locul tau as instala si nmap, dar uite un script care le foloseste pe amandoua si utilizeaza comenzi de Windows shell din secolul asta, rezultatele sunt salvate in fisiere TXTwinking.

###############
@echo off
setlocal enabledelayedexpansion

for /f "tokens=2 delims=:" %%a in ('ipconfig ^| find "IPv4 Address"') do (
set "ip=%%a"
)

for /f "tokens=2 delims=:" %%b in ('ipconfig ^| find "Subinet Mask"') do (
set "subinet=%%b"
)

set "network=! ip:~1,-1!"
set "network=! network:~0,-2!"

echo Scanning Network:! network! with Subinet Mask:! subinet!

:: Perform Ping Scan
for /L %%i in (1, 1,254) do (
ping -n 1! network!%%i | find "Reply" >> ping_results.txt
)

:: Perform Nmap Scan
nmap -sn! network!/24 > nmap_results.txt

endlocal