alibek Posted May 19, 2017 Posted May 19, 2017 Скрипт, который сканирует локальную подсеть и фиксирует в ARP-таблице обнаруженные записи. Полезен в том случае, когда в сети есть несколько устройств с одинаковым IP-адресом. В моем случае это IP-камеры — обычно они монтируются, а затем разом настраиваются (это быстрее, чем настраивать каждую камеру по месту перед монтажом). BAT-файлы на форуме запрещены, поэтому выкладываю в спойлере. @echo off setlocal EnableDelayedExpansion for /F %%a in ('"prompt $H&for %%b in (1) do rem"') do set \b=%%a set Z=%1 set W=%2 set N=%3 if "*"=="%Z%*" ( echo Lock ARP-records echo Usage: %~nx0 ^<IP^|mask^|range^> echo Examples: echo %~nx0 192.168.1.* echo %~nx0 192.168.1.1-99 echo %~nx0 192.168.1.100 goto :EOF ) if "*"=="%W%*" set W=100 if "*"=="%N%*" set N=2 for /F "usebackq tokens=1,2,3,4 delims=." %%a in ('%Z%') do ( set NET=%%a.%%b.%%c set IP=%%d ) for /F "usebackq tokens=1,2 delims=-" %%a in ('%IP%') do ( set IP1=%%a set IP2=%%b ) if "**"=="%IP%*" ( set IP= set IP1=1 set IP2=254 ) else if "*"=="%IP2%*" ( set IP= set IP2=%IP1% ) else ( set IP= ) arp -d > nul 2>&1 echo Check network [%NET%.%IP1%-%IP2%] set MAC=* for /L %%i in (%IP1%,1,%IP2%) do ( set IP=%NET%.%%i if "*"=="!MAC!*" ( for /L %%z in (1,1,40) do <nul set /P "=%\b%" for /L %%z in (1,1,40) do <nul set /P "= " for /L %%z in (1,1,40) do <nul set /P "=%\b%" ) <nul set /P "= - !IP!..." set MAC= for /F "usebackq tokens=1,2" %%a in (`ping -w %W% -n %N% !IP! ^| arp -a ^| find "!IP! " ^| find /V "00-00-00-00-00-00"`) do set MAC=%%b if "*"=="!MAC!*" ( <nul set /P "= not found" ) else ( <nul set /P "=%\b%%\b%%\b% %\b%%\b%%\b%, locked on !MAC!" arp -s !IP! !MAC! > nul 2>&1 echo. ) ) echo. echo Press any key for release locks and done... pause > nul 2>&1 arp -d > nul 2>&1 Первым аргументом указывается IP-адрес (например 192.168.1.1), диапазон (например 192.168.1.1-100) или подсеть (например 192.168.1.*). Вторым и третьим аргументом можно указать время таймаута для обнаружения и количество попыток, но по умолчанию значения оптимальные. Запускается на Windows XP и выше, за работу на Windows 2000 не уверен. Вставить ник Quote
orlik Posted May 20, 2017 Posted May 20, 2017 Для того чтоб отлавливать дублирующиеся адреса есть arping , гораздо удобнее чем просматривать апр таблицу Вставить ник Quote
alibek Posted May 20, 2017 Author Posted May 20, 2017 Под Windows? В скрипте используются только встроенные инструменты. Вставить ник Quote
orlik Posted May 21, 2017 Posted May 21, 2017 Да под виндовс . Про решение задачи через встроенное по вы ничего не писали. Использование доп утилит сильно упрощает жизнь Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.