+ Responder ao Tópico



  1. #1
    ualex
    Visitante

    Padrão Descobrir

    Ola pessoal tem como eu descobrir pelo linux todos os ip da rede ?

  2. #2

    Padrão

    Tu pode pingar o endereço de broadcast da rede ou criar um script assim:

    Código :
    #!/bin/bash
    for i in `seq 254`; do
       ping -c 1 192.168.0.$i >> lista_ip.txt;
    done;

    Abraços!



  3. #3
    ualex
    Visitante

    Padrão

    legal... voce conhece uma forma de retorna so os que nao tiveram perda e filtrar para mostrar so o ip e de preferencia o nome da maquina ?

    valeu

  4. #4

    Padrão

    Tu podes usar o comando arp -n que dará os Ips de quem está conectado com o seu gateway.



  5. #5

    Padrão

    Hummm... vamos lá, só porque eu gosto de programar em shell-script:

    Código :
    #!/bin/bash
    for i in `seq 254`; do
        nomedohost=`host 192.168.3.$i | awk '{print $5}'`;
        ping -c 1 192.168.3.$i;
        if [ $? -eq 1 ]; then
          echo -e "Host: 192.168.3.$i \tHost: "$nomedohost" \tStatus: Offline" >> StatusRede.txt;
        else
          echo -e "Host: 192.168.3.$i \tHost: "$nomedohost" \tStatus: Online" >> StatusRede.txt;
        fi
    done;

    Entretanto, eu tenho certeza de que tem como fazer isso de uma maneira já pronta e mais rápida.
    Última edição por xstefanox; 12-01-2007 às 09:45. Razão: Defeitinho no código, he-he.

  6. #6

    Padrão

    Opa, agora ficou filé:

    Código :
    #!/bin/bash
    for i in `seq 254`; do
        nomedohost=`host 192.168.3.$i | awk '{print $5}'`;
        ping -c 1 192.168.3.$i > /dev/null;
        if [ $? -eq 1 ]; then
          echo -e "Host: 192.168.3.$i \tHost: "$nomedohost" \tStatus: Offline" >> StatusRede.txt;
        else
          echo -e "Host: 192.168.3.$i \tHost: "$nomedohost" \tStatus: Online" >> StatusRede.txt;
        fi
    done;



  7. #7

    Padrão

    Se você é afrescalhado, nós temos também a versão Cauby Peixoto:

    Código :
    #!/bin/bash
    for i in `seq 254`; do
        nomedohost=`host 192.168.3.$i | awk '{print $5}'`;
        ping -c 1 192.168.3.$i > /dev/null;
        if [ $? -eq 1 ]; then
          echo -e "Host: 192.168.3.$i \tHost: "$nomedohost" \tStatus: \e[31;1mOffline\e[m" >> StatusRede.txt;
        else
          echo -e "Host: 192.168.3.$i \tHost: "$nomedohost" \tStatus: \e[34;1mOnline\e[m" >> StatusRede.txt;
        fi
    done;

    Com corzinha!