如何自动检测连接到互联网的接口

时间:2019-05-19 11:32:32

标签: batch-file tshark

所以我有带有简单.bat文件的远程计算机:

C:\Program Files\Wireshark\tshark.exe -i 1 -w c:\file.pcap

command开始Tshark进程并开始嗅探

现在我的问题是,我在多台计算机上启动此.bat文件,并且在每台计算机上正确的接口都不同,因此,使用推荐的Tshaek -D我可以获得带有索引号的所有接口,在这里,我需要知道哪个接口可以连接到互联网。

当然,我需要在我的.bat文件中执行此操作,并且这必须是我的接口号(在我的示例中,接口号是硬代码,等于1)

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这很骇人,但应该这么做。

@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地址,并将每个地址用作ping google.com的源。然后,使用findstr匹配reply,然后errorlevel 0将确定适配器是否为活动适配器。

现在,我们只需要向上5行以获取适配器的描述,然后使用findstr tshark -D来使用该适配器,并只需运行完整的tshark命令即可​​。

注意,如果使用IPv6,则完全不同。