Pular para o conteúdo

Identificar o sistema operacional usando ping

Dica publicada em Linux / Comandos
Denis Gabriel Ignacio denisignacio
Hits: 71.496 Categoria: Linux Subcategoria: Comandos
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Identificar o sistema operacional usando ping

Com o comando ping podemos identificar o sistema operacional utilizado.

O ping trabalha com o protocolo ICMP enviando mensagens, quando uma máquina de destino recebe um echo request, ela retorna um echo reply.

Para descobrir qual sistema operacional está sendo utilizado vamos usar o TTL (Time to Live), ele vai dizer quanto tempo o pacote vai ficar circulando antes de ser descartado.

Cada sistema operacional trabalha com um TTL padrão, por isso podemos identificar o sistema através dele.

Exemplo 1:

ping 127.0.0.1
PING 127.0.0.1 bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.028 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.030 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.029 ms

Exemplo 2:

ping 127.0.0.1
PING 127.0.0.1 bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=128 time=0.176 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=128 time=0.183 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=128 time=0.189 ms

Segue o TTL padrão de alguns sistemas operacionais:
  • UNIX: 255
  • Linux: 64
  • Windows: 128

Com estes números já podemos determinar o sistema operacional dos exemplos acima. No caso do exemplo 1, o ttl=64 nos diz que o sistema utilizado é Linux e no exemplo 2 podemos dizer que o sistema usado é Windows.

Os roteadores estão programados para decrementar o TTL a cada pacote que passa por ele, ou seja, se uma máquina Windows for "pingada" e o valor TTL for 126, significa que antes de chegar ao destino existem 2 roteadores.

É isso, fica a dica.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Instalar pacotes RPM no Ubuntu

Alterando senha inicial do PostgreSQL [Ubuntu]

Comando 'cat' Colorido? Conheçam o 'ccat'

Logando como root

Extrair a data de uma fotografia

Instalando o Helper e o Handbrake 0.9.5 no Ubuntu 10.10

Fazendo uma limpeza (faxina) no sistema Debian Linux

#1 Comentário enviado por smmusashi em 05/05/2010 - 08:31h
Bom dia Denis, só complementando sua informação, não podemos confiar muito no valor do TTL pois é possível alterá-lo, nos meus servidores linux por exemplo eu deixo o ttl padrão como 128, isso é feito facilmente alterando o /proc.

Nos servidores windows ou maquinas windows é possível alterar o valor do TTL através do regedit. Com Unix não tenho experiência, mas creio que também seja possível realizar esta tarefa.
#2 Comentário enviado por denisignacio em 05/05/2010 - 08:47h
Olá smmusashi, creio que no UNIX tambem é possivel fazer esta alteração. esta dica é apenas uma informação que achei interessante e resolvi repasar.

Um abraço.
#3 Comentário enviado por intelitec em 05/05/2010 - 09:13h
Nos sistemas microsoft também é possivel fazer a alteração do TTL através de chaves de registro de do utilitario netsh...
#4 Comentário enviado por cenoura em 05/05/2010 - 09:33h
Não é muito confiável utilizar este método para detectar o SO pois, além de ser possível mudar o TTL (conforme já dito acima), muitas redes bloqueiam tráfego ICMP no firewall, impedindo o uso do ping.
#5 Comentário enviado por removido em 05/05/2010 - 10:06h
É confiável até ser utilizado este comando


sysctl -w net.ipv4.ip_default_ttl=128

Pronto. Linux com ttl de windows.
#6 Comentário enviado por leovailati em 05/05/2010 - 13:48h
Muito boa a dica, cara. Já fiz testes aqui, funciona inclusive para diferenciar equipamentos de rede.

Valeu mesmo.
#7 Comentário enviado por murderb13 em 05/05/2010 - 14:20h
muito boa a sua dica.

mesmo q seja possivel alterar o valor é uma excelente dica..
valeu.!
#8 Comentário enviado por edisonsousa em 06/05/2010 - 11:53h
Boa essa dica, podemos utiliza-la quando trabalhamos com uma grande rede e temos uma diversificação gigantesca, onde sabemos que nenhum engraçadinho vai ficar mudando o ttl, de resto não é muito confiável, mais valeu mesmo.
#9 Comentário enviado por aramisoliveira em 15/11/2010 - 03:34h
Meus parabénss

Contribuir com comentário

Entre na sua conta para comentar.