可以通过判断IP地址的范围来过滤掉内网IP,一般来说,内网IP地址的范围如下:
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255
如果你想只选择动态公网IP,可以使用以下方法:
在脚本中通过ipconfig命令获取本机的IP地址。
通过判断IP地址的范围,如果是内网IP则忽略,否则将其作为动态公网IP。
下面是一个示例代码:
@echo offsetlocal enabledelayedexpansion
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr /i "IPv4"') do (
set ip=%%a
set ip=!ip: =!
set ip=!ip:IPv4 Address.=!
set ip=!ip:/=!
set /a oct1=!ip:~0,3!, oct2=!ip:~3,3!, oct3=!ip:~6,3!, oct4=!ip:~9,3!
if !oct1! neq 10 if !oct1! neq 172 if not !oct1!==192 if !oct1! neq 127 (
echo !ip! is a dynamic public IP address.
) else (
echo !ip! is a private IP address.
)
)
在这个示例代码中,我们使用ipconfig命令获取本机的IP地址,然后使用findstr命令过滤出IPv4地址。接着,我们将IP地址按点号分割成四个部分,并通过判断第一部分的值来确定是否为内网IP。如果第一部分的值为10、172、192或127,则说明这是一个内网IP,否则说明这是一个动态公网IP。最后,我们使用echo命令输出结果。