python 扫描可用wifi
时间: 2024-09-20 21:05:50 浏览: 42
在Python中,你可以使用第三方库如`wifite`、`scapy`或`pyroute2`来扫描可用的Wi-Fi网络。这里简单介绍一下如何使用`scapy`这个常用的网络包处理工具:
首先,你需要安装`scapy`库,可以使用pip命令:
```bash
pip install scapy
```
然后,你可以通过下面的脚本来扫描附近的Wi-Fi网络:
```python
from scapy.all import *
def scan_wifi():
wlan = conf.iface
ifaces = wrpcap(iface, "packets.pcap", promisc=True)
# 使用airmon-ng或aircrack-ng创建监听接口
cmd = "sudo airmon-ng start " + wlan
os.system(cmd)
sniff(prn=process_packets, filter="wlan.fc.type == 0x888e", timeout=5) # Listen for Beacon frames (essid)
os.system("sudo airmon-ng stop " + wlan)
def process_packets(packet):
if packet.haslayer( Dot11Elt ) and packet.info.startswith('ESSID: '):
essid = packet.info[7:].strip()
print(f"SSID: {essid}")
scan_wifi()
```
这段代码会在终端中显示检测到的Wi-Fi网络名称(ESSIDs)。注意,这需要root权限,并且`scapy`本身并不能直接连接到无线网络,它主要用于数据包分析。