Obter IP da máquina com Terminal Linux

Publicado por Iago Lira em 09/10/2016

[ Hits: 40.455 ]

Blog: https://notabug.org/iagolira/

 


Obter IP da máquina com Terminal Linux



A motivação para que esta dica fosse escrita, foi a falta de outras. Esta, talvez nem precisasse ser escrita, mostrará algumas maneiras de se obter o(s) IP('s) da(s) máquina(s) que possuem usando um Terminal do Linux.

Para quem já usa o GNU/Linux a bastante tempo, talvez o texto se torne entediante (ou não), mas para quem está começando, será nais um aprendizado na vida.

Análise dos comandos a serem usados

Pode-se começar conceituando e mostrando algumas opções do "ifconfig", segue abaixo:

man ifconfig

Nome: ifconfig - configura uma interface de rede
Sinopse:
  • ifconfig [interface]
  • ifconfig interface [aftype] opções | endereços ...

Descrição: ifconfig é usado para configurar (e posteriormente manter) as interfaces de rede. É usado durante o boot para configurar a maioria delas para um estado usável. Depois disto, é normalmente somente necessário durante depurações ou quando for necessária uma configuração fina do sistema.

Se nenhum argumento for informado, ifconfig somente mostra o estado das interfaces correntemente definidas. Se um argumento interface for informado, ele mostra somente o estado da interface informada. De outra forma ele assume que os parâmetros devem ser configurados.

ifconfig --help
ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]
[add <endereço>[/<tam_prefixo>]]
[del <endereço>[/<tam_prefixo>]]
[[-]broadcast [<endereço>]] [[-]pointopoint [<endereço>]]
[netmask <endereço>] [dstaddr <endereço>] [tunnel <endereço>]
[outfill <NN>] [keepalive <NN>]
[hw <HW> <endereço>] [metric <NN>] [mtu <NN>]
[[-]trailers] [[-]arp] [[-]allmulti]
[multicast] [[-]promisc]
[mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <tipo>]
[txqueuelen <NN>]
[[-]dynamic]
[up|down]
...


Pode-se também usar o grep para buscar padrões. Então, abaixo estão algumas opções:

Uso: grep [OPÇÃO]... PADRÃO [ARQUIVO]...
Busca por PADRÃO em cada ARQUIVO ou entrada padrão.
PADRÃO, por padrão, uma expressão regular básica (BRE).


Exemplo: grep -i "olá, mundo" menu.h main.c

Seleção e interpretação de expressão regular:

-E, --extended-regexp     PADRÃO uma expressão regular estendida
-F, --fixed-strings       PADRÃO textos separados por nova linha
-G, --basic-regexp        PADRÃO de uma expressão regular básica
-P, --perl-regexp         PADRO de uma expressão regular de sintaxe Perl
-e, --regexp=PADRÃO       usa PADRÃO como uma expressão regular
-f, --file=ARQUIVO        obtém PADRÃO do ARQUIVO

Os outros comandos serão abordados adiante.

Obtendo o IP da máquina

Pode-se obter o obter o IP diretamente digitando no terminal o comando:

ifconfig

Como saída, temos algo parecido com:

eth0      Link encap:Ethernet  Endereço de HW 00:1a:3f:79:fa:37
          UP BROADCASTMULTICAST  MTU:1500  Métrica:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          colisões:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          IRQ:20 Endereço de E/S:0xc000

eth1      Link encap:Ethernet  Endereço de HW x:x:x:x:x:x
          inet end.: 10.x.x.x  Bcast:10.x.x.x  Masc:255.255.0.0
          endereço inet6: fe80::121f:74ff:fe40:edd8/64 Escopo:Link
          UP BROADCASTRUNNING MULTICAST  MTU:1500  Métrica:1
          RX packets:108017725 errors:0 dropped:0 overruns:0 frame:0
          TX packets:205904725 errors:0 dropped:0 overruns:0 carrier:0
          colisões:0 txqueuelen:1000
          RX bytes:8806568871 (8.2 GiB)  TX bytes:302266295633 (281.5 GiB)
          IRQ:18

lo        Link encap:Loopback Local
          inet end.: 127.0.0.1  Masc:255.0.0.0
          endereço inet6: ::1/128 Escopo:Máquina
          UP LOOPBACKRUNNING  MTU:16436  Métrica:1
          RX packets:265988 errors:0 dropped:0 overruns:0 frame:0
          TX packets:265988 errors:0 dropped:0 overruns:0 carrier:0
          colisões:0 txqueuelen:0
          RX bytes:2317050218 (2.1 GiB)  TX bytes:2317050218 (2.1 GiB)

Então é perceptível que o IP é "10.x.x.x". No entanto, para quem quer elaborar um script que faça uso do IP da máquina, o comando acima não é conveniente.

Pode-se obter o IP fazendo as seguintes combinações como usuário sem poderes de root e de forma geral:

/sbin/ifconfig -a | grep broadcast | sed 's/netmask.*//g; s/[^0-9.]//g'
/sbin/ifconfig -a | grep -oP '(?<=inet).*(?=netmask*.*broadcast)'

Ou, como root:

# ifconfig -a | grep broadcast | sed 's/netmask.*//g; s/[^0-9.]//g'
# ifconfig -a | grep -oP '(?<=inet).*(?=netmask*.*broadcast)'

Para saber mais sobre os outros comandos usados nesta seção, digite no terminal

man nome-do-comando

Espero que gostem do pequeno artigo, se tiver outros métodos, postem nos comentário.

Outras dicas deste autor

Instalando o Blas/Lapack no Debian e derivados

Gerenciar dispositivos bluetooth com o Blueman

Bloqueando 889.898 sites pornográficos no seu computador

Leitura recomendada

Zenwalk vs Slackware

Comprei um computador com Linux, o que faço?

Orientação a objetos com a linguagem Ruby

Instalação do Django

Slax - Linux para micros fracos, inclusive 32 bits

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts