Методы сканирования сетей Wi-Fi с помощью Raspberry Pi с примерами кода

Для сканирования доступных сетей Wi-Fi с помощью Raspberry Pi вы можете использовать различные методы в зависимости от языка программирования и библиотек, которые вы предпочитаете. Вот несколько примеров использования Python и библиотеки Scapy, Python и модуля подпроцесса, а также инструмента командной строки iwlist:

Метод 1: Python со Scapy

from scapy.all import *
def wifi_scan():
    interface = "wlan0"  # Replace with your wireless interface
    scan_request = RadioTap() / Dot11(type=0, subtype=4, addr1="ff:ff:ff:ff:ff:ff") / Dot11Elt(ID=0, info="\x01")
    scan_response = srp(scan_request, iface=interface, timeout=5)

    for response in scan_response[0]:
        ssid = response[1].info.decode()
        print("SSID: ", ssid)
wifi_scan()

Метод 2: Python с подпроцессом

import subprocess
def wifi_scan():
    command = "sudo iwlist wlan0 scan | grep ESSID"
    output = subprocess.check_output(command, shell=True).decode()
    essids = [line.split(':')[1].strip().strip('"') for line in output.split('\n') if 'ESSID' in line]

    for essid in essids:
        print("SSID: ", essid)
wifi_scan()

Метод 3: инструмент командной строки iwlist

sudo iwlist wlan0 scan | grep ESSID