Ola, essa dica é para iniciantes e que pretendem trabalhar com rede ou coisa do tipo.
Muita gente usa o ping para teste de conexão do tipo "checar o tempo de conexão" ou se o "host está no ar", mas não sabe que da pra fazer coisas mais legais como:
- Descobrir o sistema operacional (em partes);
- Saber a distancia (numero de rotas) que a requisição do ping passou.
Vamos la!
# ping www.google.com.br
PING www.l.google.com (74.125.234.112) 56(84) bytes of data.
64 bytes from 74.125.234.112: icmp_seq=1 ttl=56 time=137 ms
O assunto dessa dica gira em torno da TTL (Time to Live).
"TTL é um acrônimo do inglês Time to Live, que significa o número de saltos entre máquinas que os pacotes podem demorar numa rede de computadores antes de serem descartados (máximo 255).
Qualquer router está programado para descontar uma unidade do TTL aos pacotes que o atravessam. Esta é uma forma de evitar que os pacotes permaneçam na rede por tempo infinito, caso o routing não esteja a ser feito devidamente, como no caso de looping." (Fonte: wikepedia -
http://pt.wikipedia.org/wiki/Time_to_Live).
O padrão da ttl dos sistemas operacionais são:
- Linux = 64
- Windows = 128
- Unix = 255
Mas porque a ttl no ping feito a cima contra o google retornou 56?
Como explicado, existe uma subtração em cada salto do ping, cada máquina (router) que o ping passa é tirado 1 da ttl, o número mais próximo do ttl padrão para 56 é 64, por tanto minha maquina esta à 8 routers de distância do servidor do Google (nossa aqui do lado rsrsrs) e se é 64, ele é um Linux (putis que legal! A máquina do Google que estou acessando é Linux rsrsrsrs).
Mas, ha Controvérsias!
Você pode mudar o numero de sua ttl para qualquer numero a baixo de 255.
Fazer isso no Linux é muito fácil, basta editar o arquivo "ip_default_ttl" dentro de "/proc/sys/net/ipv4" assim:
# echo 128 > /proc/sys/net/ipv4/ip_default_ttl
Com isso, se tiver alguém "snirfando" sua rede vão pensar que você esta usando um Windows.
Você pode deixar essa alteração definitiva acrescentando "net.ipv4.ip_default_ttl = 128" no arquivo "/etc/sysctl.conf":
# echo "net.ipv4.ip_default_ttl = 128" >> /etc/sysctl.conf
Bom é isso ai.