Obter IP da máquina com Terminal Linux

Publicado por Iago Lira em 09/10/2016

[ Hits: 36.522 ]

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

Gerenciar dispositivos bluetooth com o Blueman

Bloqueando 889.898 sites pornográficos no seu computador

Instalando o Blas/Lapack no Debian e derivados

Leitura recomendada

Conheça a distro que pode te tornar um ótimo administrador Linux

Squid caindo devido ao erro "WARNING! Your cache is running out of filedescriptors"

Debian Squeeze - erro no APT "Failed to exec method /usr/lib/apt/methods/"

As 10 distribuições Linux preferidas nos últimos 3 meses

Gerenciando processos no Linux

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário