Это очень хакерский, но стоит сделать.
@echo off
for /f "tokens=2 delims=:" %%i in ('ipconfig ^|findstr "IPv4"') do (
ping -n 1 -S%%i google.com |findstr /i reply
if not errorlevel 1 for /f %%a in ('ipconfig ^| findstr /I /N "%%i"') do set cnt=%%a
)
set /a cnt-=5
for /f "tokens=1* delims=:" %%i in ('ipconfig ^|more +%cnt%') do set adap=%%i & goto runts
:runts
set adap=%adap:*adapter =%
for /f "usebackq delims=." %%i in (`""C:\Program Files\Wireshark\tshark.exe" -D | findstr /I "%adap%""`) do (
"C:\Program Files\Wireshark\tshark.exe" -i %%i -w c:\file.pcap
)
Что мы делаем, запускаем ipconfig
и получаем все IPv4
адреса и используем каждый из них как источник для пинга google.com
.Используя findstr
, мы затем сопоставим reply
, а затем errorlevel 0
определим, был ли адаптер активным.
Теперь мы просто перейдем на 5 строк, чтобы получить описание адаптера, затем мы findstr
этот адаптер, используя tshark -D
и просто выполните полную команду tshark
.
Обратите внимание, что это будет совсем другое, если вы используете IPv6.