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?
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:
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.