批处理验证外网ip地区 执行不同代码的问题

批处理验证外网ip地区 执行不同代码的问题

工作原因 有人老是偷偷的发给外地的人用
所以想弄个批处理 验证地区

批处理获取外网ip 归属地 网址ping0.cc

img

取红色方框里的地址即“中国 山东省威海市联通” 保存到C:\IPPTB.txt 里

然后判断 IPPTB.txt里的内容 是否有“威海”两个字

有 goto a 否则goto b

批处理能实现么 代码最好是能用Bat_To_Exe_Converter 编译成exe

已解决


@echo off  
setlocal  
  
:: 获取外网IP并将其保存到IPPTB.txt中  
powershell -Command "(new-object system.net.networkinformation.ipconfigtable).connection.remoteadress | select-string -pattern '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' | % {[system.net.dns]::gethostbyaddr($_).hostname}" > C:\IPPTB.txt  
  
:: 读取IPPTB.txt文件内容,并根据是否存在“威海”字符串进行判断,并执行不同代码  
for /f %%i in (C:\IPPTB.txt) do if %%i==威海 (  
    goto a  
) else (  
    goto b  
)  
  
:a  
echo 在威海  
ping 192.168.0.1 > nul  
goto end  
  
:b  
echo 不是威海  
ping 127.0.0.1 > nul  
goto end  
  
:end  
pause