es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obteniendo todas las direcciones IP conectadas a WiFi usando Python y Scapy.

¿Cómo puedo obtener las direcciones IP de todos los IPs conectados al wifi (al que estoy conectado)? Intenté hacerlo utilizando sniff() y obteniendo todas las direcciones IP de origen de esos paquetes utilizando las siguientes líneas:

ips = []
captured = sniff(count=200)
for i in range(len(captured)):
    try:
        rpp = captured[i].getlayer(IP).src
        if "192." in rpp and rpp != router_ip:
            ips.append(rpp)
    ips = list(set(ips))

Pero esto rara vez me da todas las direcciones IP, ¿entonces cómo puedo lograrlo utilizando Python y (si es necesario) scapy?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para obtener las direcciones IP de todos los dispositivos conectados a la red WiFi en la que te encuentras utilizando Python y Scapy, puedes utilizar el protocolo ARP. El protocolo ARP se utiliza para mapear las direcciones IP a las direcciones MAC en una red.

    Puedes enviar una solicitud ARP a la dirección de difusión de la red y luego recibir una respuesta ARP de cada dispositivo conectado a la red. La respuesta contendrá la dirección IP y la dirección MAC de cada dispositivo.

    Aquí tienes un código de ejemplo que puedes utilizar:

    from scapy.all import ARP, Ether, srp
    
    # crear paquete de solicitud ARP
    arp = ARP(pdst="192.168.1.0/24")
    ether = Ether(dst="ff:ff:ff:ff:ff:ff")
    packet = ether/arp
    
    # enviar paquete y recibir respuesta
    result = srp(packet, timeout=3, verbose=0)[0]
    
    # analizar respuesta y obtener direcciones IP
    ips = []
    for sent, received in result:
        ips.append(received.psrc)
    
    # eliminar duplicados
    ips = list(set(ips))
    
    # imprimir direcciones IP de los dispositivos conectados
    for ip in ips:
        print("Dirección IP: ", ip)
    

    Este código envía una solicitud ARP a la dirección de difusión de la red (en este caso, 192.168.1.0/24) y espera una respuesta de cada dispositivo. Luego extrae la dirección IP de cada respuesta y la almacena en la lista ips. Finalmente, elimina cualquier duplicado de la lista e imprime las direcciones IP de todos los dispositivos conectados.

Comments are closed.