Я пытаюсь найти список не признанных устройств, подключенных к беспроводной сети. Я пытаюсь сравнить те, которые основаны на MAC-адресах (при условии, что все устройства «видимы», и никто не имеет скрытого или перехватывающего MAC-адреса), и у меня есть набор этих устройств в разрешенном массиве.Сравнение строки с массивом в цикле
nmap -sn 192.168.1.0/24 ^| find "MAC Address"
Это дает мне список всех MAC-адресов, подключенных к шлюзу по умолчанию. Что было бы самым простым способом сравнить вывод выше с теми, которые являются «приемлемыми» и отображать тот, который не является.
Вот как далеко я достиг:
@echo off
set all_apps="xx:xx:xx:xx:xx:xx" "yy:yy:yy:yy:yy:yy" "zz:zz:zz:zz:zz:zz"
set "connected="
set "unauthorized="
for /f "tokens=3" %%a in ('nmap -sn 192.168.1.0/24 ^| find "MAC Address"') do call set connected="%%a" %%connected%%
echo duplicates:
for %%a in (%all_apps%) do (
for %%b in (%connected%) do (
if "%%~a"=="%%~b" echo %%~b
)
)
pause
REM echo %connected% "xx:xx:xx:xx:xx:xx" "aa:aa:aa:aa:aa:aa"
Здесь «all_apps» представляет собой массив всех допустимых MAC-адресами и «связный» должен содержать список всех подключенных устройств. Я могу узнать дублированные, но не те, которые не разрешены или ожидаются.
Покажите нам образец продукции 'nmap' обеспечивает для вас, а также планируемое копию списка и содержание' 'connected' и unauthorized' при условии, что 'nmap'. При необходимости переопределите данные. 'nmap' для меня не является признанной командой. – Magoo