搜了一下 没有发现完美的批处理
现在有一个 思路 可以完美的判断 自己是否属于内网 还是外网
简单的来说就是 通过访问 ip查询网站 读取ip数值再通过命令 “ipconfig /all”进行对比
如果发现通过ip查询网站获得的ip和自己的 通过命令获得的ip相匹配 那就可以确认 自己绝对是外网
不知道坛子里的朋友是否 还有其他更好的 思路和方法
我能想到的只有这个了
获得ip信息的网站 比较好用的有 http://pv.sohu.com/cityjson 和 http://whois.pconline.com.cn/
在做对比的时候 可以只对比 a.b.c 部分 因为有些查询外网ip d段可能会有变动
比如 通过本命令查询的外网ip是123.123.123.123
但是通过网站获得的ip 也许会是 123.123.123.111
还有要考虑到多个外网ip的情况
只要一组ip 对比正确 就可以判断为外网
第一个版本 此版本问题是系统必须支持wmic命令- @echo off
- >Getip.vbs echo Set oDOM=WScript.GetObject("http://pv.sohu.com/cityjson"):Do Until oDOM.readyState="complete":WScript.sleep 200:Loop:WScript.echo oDOM.documentElement.outerText:Set oDOM=nothing
- for /f "tokens=1 delims=[]" %%i in ('"cscript //nologo Getip.vbs"') do echo %%i>ip.txt
- for /f "tokens=2 delims={,}" %%i in ('wmic nicconfig get ipaddress /value') do set IP=%%~i
- echo %IP%
- type ip.txt | findstr /i "%ip%" >nul
- if %errorlevel%==0 ( echo 外网 &pause ) else (
- echo 内外 &pause
- )
-
- pause
复制代码
|