“PING” um AP para ver se está vivo? (Antes de associar com ele)

1

Gostaria de detectar se um determinado endereço AP está ativo, por exemplo, "PING", seu endereço SSID ou MAC (ambos conhecidos).

Qual programa posso usar para conseguir isso? Estou fazendo um script simples que é executado como root.

(Espero que eu não esteja fazendo isso por algo como iwlist scan | grep XX )

    
por daisy 25.11.2012 / 01:51

2 respostas

3

what iw(list) scan faz o envio de mensagens ProbeRequest em todos os canais (um por um) sem especificar o SSID de destino, todos os AP no intervalo na resposta do canal com o ProbeResponse

o que você quer é enviar o ProbeRequest para um SSID específico, você pode fazer isso por iw wlanx scan ssid xxx ou iw wlanx scan freq xxxx ssid xxxx

se você não quiser analisar iw output, você pode escrever um programa simples usando nl80211 interface para fazer a varredura (comando NL80211_CMD_TRIGGER_SCAN) e ter acesso a resultados de varredura brutos ou usar uma boa biblioteca como isso para fazer o trabalhe para você

    
por 25.11.2012 / 12:18
1

Geralmente, você não pode fazer ping em um AP, pois é um dispositivo de camada 2, isso significa que ele opera na camada de dados. Esta camada não responderá ao echo do ICMP. Na camada, a única maneira de saber se o AP está funcionando é ver se você pode fazer ping no seu próximo salto (geralmente seu gateway). Para verificar o AP especificamente, você precisa descobrir em uma camada de duas maneiras, se houver um tráfego vindo até você.

Nota: Se você pode associar com o AP, geralmente significa que o AP está OK.

No entanto, para verificar se o seu AP está funcionando corretamente. Primeiro, descubra o SSID do seu AP (endereço MAC) via iwlist . Depois disso, execute um tcpdump e verifique se você está recebendo pacotes do SSID para o endereço MAC do seu computador.

Exemplos:

tcpdump -i wlan0 -e -nn 'ether src XX:XX:XX:XX:XX:XX && ether dst FF:FF:FF:FF:FF:FF'

Ao ver esse tráfego, você verá que está recebendo tráfego do AP e está associado adequadamente.

tcpdump -i wlan0 -e -nn 'ether src XX:XX:XX:XX:XX:XX && ether dst YY:YY:YY:YY:YY:YY'

Substitua os XXs pelo endereço MAC do AP (o SSID) e os AAs pelo endereço MAC da sua interface sem fio. Se você vir tráfego aqui, saberá que o AP está enviando tráfego especificamente para sua interface sem fio, o que mostra mais conclusivamente o que você está conectado.

Esta resposta assume que você está tentando se certificar de que o erro que você está tendo é com uma conexão com um AP.

Se você quiser algo diferente - ou seja, um aplicativo semelhante ao NetworkManager que se conectará a qualquer SSID disponível, adicione isso à sua pergunta.

    
por 25.11.2012 / 03:04