Tech By Rocha

@techbyrocha

Descobrir IP do nosso PC via CMD do Windows

A primeira vista pode parecer uma tarefa simples e de facto se o nosso computador só tiver uma placa de rede é algo relativamente simples de fazer, mas aqui o objetivo foi conseguir isso num PC com uma configuração mais complexa.

Nos dias de hoje é comum ter disponível no computador, um adaptador de rede para ligação por cabo e em simultâneo também um adaptador sem fios para acesso a redes wi-fi. Menos comum mas cada vez mais frequente é encontrar configurados no computador adaptadores de rede virtuais para acesso a redes virtuais em contextos de virtualização mas não só. Em resumo um enredo louco de adaptadores de rede, todos eles pertinentes, mas que na hora em que precisarmos descobrir o IP do nosso pc na rede onde estamos ligados com recurso a um comando, essa tarefa fica bem mais complexa do que seria desejável.

Para começar convém ter presente que este método terá sucesso numa maquina que conte com:

  • Placas de rede por cabo, placas de rede wi-fi e placas de rede virtuais (o numero de placas não relevante)
  • No caso das placas de rede por cabo e wi-fi só uma delas pode estar ligada a sua rede de trabalho / domestica

O comando que nos vai permitir descobrir o IP do PC que podemos ver a partir de outros computadores é:

C:\> for /f "tokens=*" %%# in ('wmic nicconfig where "ipenabled=true" get description^,ipaddress ^| findstr /v Virtual ^| findstr /n . ^| findstr /b ^2:') do (for /f tokens^=2^ delims^=^" %%b in ('echo %%#') do set ip=%%b)
C:\> echo %ip%
Comando Explicado
for /f "tokens=*" %%# in

Permite carregar na variável %%# o resultado do comando:

('wmic nicconfig where "ipenabled=true" get description^,ipaddress ^| findstr /v Virtual ^| findstr /n . ^| findstr /b ^2:')

Esta instrução lista o ip de cada um dos adaptadores ativos, excluindo os que são virtuais. Para alem disso atribui números as linhas, o que vai permitir filtrar posteriormente a linha que nos interessa.

De seguida tratamos o resultado na instrução:

do (for /f tokens^=2^ delims^=^" %%b in ('echo %%#') do set ip=%%b)

Nesta fase isolamos o IP do adaptador ao utilizar os paramentos tokens^=2^ delims^=^” associados ao comando for sobre a variável %%# e para finalizar o processo carregamos o resultado na variável ip

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Este site utiliza o Akismet para reduzir spam. Fica a saber como são processados os dados dos comentários.