Encontrar IP com lote

0

Eu preciso usar um comando de algum tipo para encontrar o ip externo do usuário do meu arquivo de lote. Eu tentei muitos métodos, mas eu preciso do arquivo em lotes para reconhecer o ip como uma variável de algum tipo para que ele possa usá-lo. Alguém tem respostas

    
por Rory Durrant 11.12.2014 / 21:46

1 resposta

3

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%
    
por 11.12.2014 / 22:22