7

I was searching for a program that can scan for WiFi networks and print all of the SSIDs. I tried with scapy but I failed. I am using the pyCharm editor.

I tried this code:

from scapy.all import *
from scapy.layers.dot11 import Dot11

def packet_handler(pkt):        
    if pkt.haslayer(Dot11) and pkt.type == 2:        
        print(pkt.show())
scapy.sniff(iface="mon0", prn=packet_handler)
Martin Evans
  • 45,791
  • 17
  • 81
  • 97
Luca dall'aglio
  • 81
  • 1
  • 1
  • 4
  • 1
    Hello and welcome to StackOverflow. Please take some time to read the help page, especially the [the Stack Overflow question checklist](http://meta.stackexchange.com/q/156810/204922). As currently you should add a description of the problem this code is giving you (and full stack trace if appropriate) to your question – LinkBerest Sep 24 '16 at 19:55
  • 1
    What was the result of your code? – Noob123 Sep 26 '16 at 17:44
  • For Mac OS: [Is there any way to access OS X wi-fi data using Python? (Signal strength, for example)](https://stackoverflow.com/q/15169022/2745495) – Gino Mempin Jan 13 '20 at 12:58

1 Answers1

11

try pip install wifi then for scanning use

from wifi import Cell, Scheme
Cell.all('wlan0')

This returns a list of Cell objects. Under the hood, this calls iwlist scan and parses the unfriendly output. Each cell object should have the following attributes: ssid, signal, quality and more. and for connecting use

cell = Cell.all('wlan0')[0]
scheme = Scheme.for_cell('wlan0', 'home', cell, passkey)
scheme.save()
scheme.activate()

scheme = Scheme.find('wlan0', 'home')
scheme.activate()

for more info goto https://wifi.readthedocs.io/en/latest/

Amin Etesamian
  • 3,363
  • 5
  • 27
  • 50