Eu nunca soube sobre o BITSAdmin.
Mas eu achei isso no manual:
BITSAdmin is deprecated and is not guaranteed to be available in future versions of Windows.
Você também pode fazer isso sem o BITSadmin (e com uma pequena ajuda do powershell):
@echo off
set ip=
powershell.exe -Command (New-Object net.webclient).downloadstring('http://myexternalip.com/raw') > tempfile
set /p ip=<tempfile
del tempfile
echo %ip%
Você também pode fazer isso sem o tempfile (mas fica um pouco mais complicado)
Editar :
Esta é a versão sem um tempfile:
@echo off
set ip=
for /f "delims=" %%a in ('powershell.exe -Command ^(New-Object net.webclient^).downloadstring^('http://myexternalip.com/raw'^)') do @set ip=%%a
echo %ip%
Edit2 :
Eu não estava muito feliz com a velocidade.
Aqui está uma versão muito mais rápida (quase instantaneamente):
@echo off
set ip=
for /f "tokens=2 delims= " %%a in ('%windir%\system32\nslookup myip.opendns.com resolver1.opendns.com 2^> nul ^| find "Address" ^| find ^/V "208.67.222.222"') do set ip=%%a
echo %ip%