Поскольку ваш код может быть смещен на основе других адаптеров в вашей сети, я покажу вам лучший способ получить IPv4.Это может быть очень сложно сделать, так как вам нужно разобраться с каждым адаптером. В вашем примере он только захватит последний один в списке ipconfig
.
Чтобы это исправить, вы можетесначала найдите адаптер, затем найдите следующий ipv4, связанный с этим адаптером.Во многих случаях нужный вам ipv4 будет называться Wireless LAN adapter Wi-Fi
.Обязательно замените это на свой уважаемый сетевой адаптер.В пакетном сценарии %adress%
будет строкой IPv4
.
Найти пакет IPv4 Script:
@echo off
setlocal enabledelayedexpansion
set "adapter=Wireless LAN adapter Wi-Fi"
set adapterfound=false
for /f "tokens=1-2 delims=:" %%f in ('ipconfig') do (
set "item=%%f"
if /i "!item!"=="!adapter!" (
set adapterfound=true
) else if not "!item!"=="!item:IPv4 Address=!" if "!adapterfound!"=="true" (
set "adress=%%g"
set adress=!adress:* =%!
set adapterfound=false
)
)
echo Your IPv4 Address: %adress%
pause
goto :EOF
Для поиска только имен профилей с помощью netsh wlan show profiles
, правильный способ будет использовать for loop
с tokens
& skip
.
Поскольку строки начала всегда одинаковы для netsh wlan show profiles
, мы можем просто пропустить первые 4 строкизатем используйте токены, чтобы получить только все после 4-го пробела (в нашем случае это имя сетевого профиля).Ниже, переменная %%b
будет вашим именем Wi-Fi.
Получить только имена профилей BATCH:
@echo off
Rem | Grab all profile names
for /f "tokens=4,* skip=4" %%a in ('netsh wlan show profile') do (
echo [WIFI-NAME: %%b]
)
pause
goto :EOF
Используя этот метод, мы можем еще дальшеэто также позволяет получить каждый пароль с именем профиля с помощью netsh wlan show profile "NAME" key^=clear
и извлечь пароль Key Content
или ->
.Используя серию for loops
, это можно сделать чисто и организованно.Ниже приведено объяснение REM
.
Список профилей + BATCH пароля:
@echo off
Rem | Grab all profiles
for /f "tokens=4,* skip=4" %%a in ('netsh wlan show profile') do (
Rem | Grab key for each profile
for /f "tokens=*" %%c in ('netsh wlan show profile "%%b" key^=clear') do (
Rem | Grab only key
for /f "tokens=3,*" %%d in ('echo %%c^| find /i "Key Content"') do (
Rem | Display & Record key
echo [WIFI-NAME: %%b] [CURRENT-PASSWORD: %%e]
)
)
)
pause
goto :EOF
Для получения справки по любой из команд выполните следующее:
- вызов /?
- набор /?
- для /?
- if /?
- Так далее.