Como extrair a linha final desta lista de IPs?

1

Estou tentando obter o endereço IP externo de uma rede para ver se está na mesma rede que outros PCs, mas meu script não está funcionando. Meu principal problema é que: Não importa o que eu faça, não consigo obter a linha com o endereço IP externo de nslookup myip.opendns.com resolver1.opendns.com Aqui está o que eu tenho:

nslookup myip.opendns.com resolver1.opendns.com>IP
set nu1m=0
Setlocal EnableDelayedExpansion
for /F "tokens=*" %%A in  (IP) do (set /a nu1m+=1 & if !num!==6 set ip=%%A)
echo %ip% >Out.txt
EndLocal

Eu tentei substituir %ip% por !ip! , mas não importa o que eu faça, a variável ip está vazia. Alguma ideia do que estou fazendo errado?

    
por Mark Deven 24.05.2018 / 15:35

1 resposta

1

Em vez de escrever nslookup output em um arquivo, você pode analisá-lo diretamente com um for /f , conforme mostrado em esta versão repito aqui para uma pesquisa mais fácil:

@Echo off
for /f "tokens=2 delims=: " %%A in (
  'nslookup myip.opendns.com. resolver1.opendns.com 2^>NUL^|find "Address:"'
) Do set ExtIP=%%A
Echo External IP is : %ExtIP%
    
por 24.05.2018 / 22:31