Rede - Compartilhada com outros computadores - Como encontrar o endereço IP de um cliente?

5

O hardware é assim:

  • Laptop com acesso à internet via Wi-Fi. O roteador é praticamente inacessível.
  • Banana Sem Cabeça / Framboesa / Seu-Favorito-Flavor Pi que precisa de uma imagem SD e alguns pacotes adicionais.

Então eu recebo um cabo temporário de crossover entre o Pi e o laptop, configurei a porta ethernet do laptop como "Shared to other computers" (*), criei a imagem do cartão SD e inicializei o Pi. Agora, qual endereço o Pi tem para que eu possa usar o SSH?

Eu não preciso forçar um endereço específico, como essa pergunta quer . Eu só quero saber o que é isso.

(*) Notificação de rede - > Editar conexões ... - > Conexão com fio 1 - > Botão Editar - > guia Configurações do IPv4 - > Método = Compartilhado com outros computadores

    
por AaronD 13.11.2016 / 21:58

2 respostas

5

Existem algumas coisas que você pode fazer. Supondo que você tenha conexão Ethernet única indo do laptop para o framboesa, então arp-scan será suficiente. Primeiro, descubra qual é o nome da sua interface ethernet. No meu caso, é eth3 . Assim, aqui está um exemplo:

bash-4.3$ sudo arp-scan -I eth3 --localnet
[sudo] password for xieerqi: 
Interface: eth3, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8.1 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
10.42.0.40  b8:27:eb:96:38:91   (Unknown)

1 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.8.1: 256 hosts scanned in 1.459 seconds (175.46 hosts/sec). 1 responded

Na saída, você pode ver que o meu Raspberry tem endereço IP 10.42.0.40.

O arp-scan é uma abordagem muito simples e não requer muito suor. Métodos alternativos também podem ser usados. Aqui estão alguns deles:

  • Conhecendo os primeiros 3 octetos da rede (por exemplo, através do comando ip addr show eth3 no meu caso), você pode escrever um script simples que pinga o intervalo de hosts. (Veja abaixo o script python que faz isso).
  • fping é alternativa ao comando padrão ping , que permite que o intervalo do host seja testado
  • Você pode usar nmap para realizar a descoberta de host em diversos métodos. Em particular, este comando: nmap -e eth3 -sn 10.42.0.0/24 funcionaria melhor - instrui nmap a realizar somente a descoberta de host com a opção -sn (que sob o capô envia solicitações ARP para transmitir o endereço MAC), na interface especificada por -e opção. A 10.42.0.0/24 é a notação CIDR para rede. Muito simples.
  • Wireshark também pode ser usado para capturar pacotes na sua interface Ethernet. É claro que o seu Raspberry tem que enviar alguns pacotes em primeiro lugar para eles serem capturados, então pode não funcionar se você não tiver um framboesa "falante". Você pode, no entanto, iniciar a captura, filtrar por protocolo UDP, desconectar e reconectar em Raspberry. Você deve ver a solicitação e a resposta do DHCP indo para ela

  • Osdispositivoscriamsuatabelaarpaolongodotempoquandooshostsaparecem/desaparecemdarede,portanto,vocêtambémpodeusarocomandoarp-a.

  • SevocêestáusandooUbuntupadrãoenãoinstalounenhumservidorDHCPalternativo,vocêpodeverificaroarquivodnsmasqleasesparaoqualoIPfoiatribuídoaosseusdispositivos.Porexemplo:

    bash-4.3$cat/var/lib/misc/dnsmasq.leases1479095355b8:27:eb:96:38:9110.42.0.40localhost*

    Vejaminhaperguntarelacionadaaqui: Concessão de DHCP para o pi de framboesa não encontrada

As abordagens

nmap e Wireshark serão bastante úteis se você tiver uma chave ethernet com vários dispositivos conectados a ela.

Já que mencionei o script com ping , aqui está um:

from subprocess import *
network = '10.42.0.'
for num in range(255):
    i = str(num)
    dn = open('/dev/null','w')
    try:
        print('checking ' + network + i)
        check_call(['ping', '-c','1', '-W',
                    '1','-q',network + i],stdout=dn)
    except CalledProcessError:
        pass
        #print('10.42.0.' + i + ' is down')
    else:
        print('>>> ' + network + i + ' is up')

Isso fará um ping no intervalo de 256 endereços da minha rede ( 10.42.0.x ) e indicará qual dos hosts está ativo. O ping expira após 1 segundo, portanto, ele levará 256 segundos para verificar tudo. Se você tiver apenas um framboesa, pode editar o script para sair se um ip responder ao ping, acelerando assim o processo. Você também pode criar um determinado número de segmentos. No entanto, arp-scan continua a ser uma alternativa mais rápida.

    
por Sergiy Kolodyazhnyy 14.11.2016 / 01:37
1

Talvez esse link possa ser útil: link

A parte principal é:

Instale o nmap:

apt-get install nmap

Execute uma verificação de ping:

nmap -sn <your-subnet>

Por exemplo:

nmap -sn 192.168.1.0/24

Então você terá uma saída semelhante a esta:

Starting Nmap 6.40 ( http://nmap.org ) at 2014-03-10 12:46 GMT
Nmap scan report for hpprinter (192.168.1.2)
Host is up (0.00044s latency).
Nmap scan report for Gordons-MBP (192.168.1.4)
Host is up (0.0010s latency).
Nmap scan report for ubuntu (192.168.1.5)
Host is up (0.0010s latency).
Nmap scan report for raspberrypi (192.168.1.8)
Host is up (0.0030s latency).
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.41 seconds

Às vezes, também uso um aplicativo para dispositivos móveis se o Wi-Fi estiver disponível: link

    
por Lorenzo Pizzari 14.11.2016 / 00:41