获取外网IP地址的批处理代码

::========================================== 
:: IP.bat
:: v0.1
:: jinminghou.cn@2009-12-22
::==========================================
@echo off
title GetIP
set ip=unknown
echo On Error Resume Next:Set oDOM=WScript.GetObject("http://www.jinminghou.cn/?app=ip&flag=client&temp="^&now()):Dim i:For i = 1 To 50:If
oDOM.ReadyState="complete" Then Exit For:End If:WScript.Sleep 200:Next:Dim Temp:Temp=oDOM.documentElement.outerText:Set oDOM=Nothing:Temp=Mid(Temp, Instr
(Temp, "[")+1, Instr(Temp, "]")-Instr(Temp, "[")-1):WScript.Echo Temp>"%temp%GetIP.vbs"
for /f "tokens=1,* delims=:" %%i in ('"cscript //nologo ^"%temp%GetIP.vbs^"') do set ip=%%i
if exist "%temp%Getip.vbs" del "%temp%Getip.vbs">2>nul
echo Your IP: [%ip%]
pause>2>nul

【方案一】BAT + VBS

@echo off
set "URL=http://www.ip138.com/ip2city.asp"
>%temp%/download.vbs echo Set objDOM = WScript.GetObject(WScript.Arguments(0))
>>%temp%/download.vbs echo Do Until objDOM.ReadyState = "complete"
>>%temp%/download.vbs echo WScript.Sleep 100
>>%temp%/download.vbs echo Loop
>>%temp%/download.vbs echo WScript.Echo objDOM.DocumentElement.OuterText
for /f "tokens=2 delims=[]" %%a in ('cscript //nologo //e:vbscript %temp%/download.vbs "%URL%"') do (
    set "PublicIP=%%a"
)
echo,%PublicIP%
pause

【方案二】BAT + wget.exe(GNU)

@echo off
set "URL=http://www.ip138.com/ip2city.asp"
for /f "tokens=2 delims=[]" %%a in ('wget -q "%URL%" -O -') do (
    set "PublicIP=%%a"
)
echo,%PublicIP%
pause

【方案三】BAT + curl.exe(GNU)

@echo off
set "URL=http://www.ip138.com/ip2city.asp"
for /f "tokens=2 delims=[]" %%a in ('curl -s "%URL%"') do (
    set "PublicIP=%%a"
)
echo,%PublicIP%
pause