-
-
Save taylor224/516de7dd0b707bc0b1b3 to your computer and use it in GitHub Desktop.
# -*- coding: utf-8 -*- | |
import wifi | |
def Search(): | |
wifilist = [] | |
cells = wifi.Cell.all('wlan0') | |
for cell in cells: | |
wifilist.append(cell) | |
return wifilist | |
def FindFromSearchList(ssid): | |
wifilist = Search() | |
for cell in wifilist: | |
if cell.ssid == ssid: | |
return cell | |
return False | |
def FindFromSavedList(ssid): | |
cell = wifi.Scheme.find('wlan0', ssid) | |
if cell: | |
return cell | |
return False | |
def Connect(ssid, password=None): | |
cell = FindFromSearchList(ssid) | |
if cell: | |
savedcell = FindFromSavedList(cell.ssid) | |
# Already Saved from Setting | |
if savedcell: | |
savedcell.activate() | |
return cell | |
# First time to conenct | |
else: | |
if cell.encrypted: | |
if password: | |
scheme = Add(cell, password) | |
try: | |
scheme.activate() | |
# Wrong Password | |
except wifi.exceptions.ConnectionError: | |
Delete(ssid) | |
return False | |
return cell | |
else: | |
return False | |
else: | |
scheme = Add(cell) | |
try: | |
scheme.activate() | |
except wifi.exceptions.ConnectionError: | |
Delete(ssid) | |
return False | |
return cell | |
return False | |
def Add(cell, password=None): | |
if not cell: | |
return False | |
scheme = wifi.Scheme.for_cell('wlan0', cell.ssid, cell, password) | |
scheme.save() | |
return scheme | |
def Delete(ssid): | |
if not ssid: | |
return False | |
cell = FindFromSavedList(ssid) | |
if cell: | |
cell.delete() | |
return True | |
return False | |
if __name__ == '__main__': | |
# Search WiFi and return WiFi list | |
print Search() | |
# Connect WiFi with password & without password | |
print Connect('OpenWiFi') | |
print Connect('ClosedWiFi', 'password') | |
# Delete WiFi from auto connect list | |
print Delete('DeleteWiFi') |
Hi, I am getting this error. What may be wrong?
[Cell(ssid=mySSID)]
Traceback (most recent call last):
File "/home/pi/wifi_con.py", line 89, in <module>
print(Connect('mySSID', '@key12345'))
File "/home/pi/wifi_con.py", line 34, in Connect
savedcell.activate()
File "/home/pi/.local/lib/python3.9/site-packages/wifi/scheme.py", line 172, in activate
subprocess.check_output(['/sbin/ifdown', self.interface], stderr=subprocess.STDOUT)
File "/usr/lib/python3.9/subprocess.py", line 424, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/lib/python3.9/subprocess.py", line 528, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/sbin/ifdown', 'wlan0']' returned non-zero exit status 1.
Guys…can you give me pls an answer of this question…my devise is not rooted..
Can this script run without any problems ???
Hi!
Any solution for the returned non-zero error returned by the scheme.activate() method?
Here is the complete error message below:
Traceback (most recent call last):
File "/home/pi/projects/wifi_connect.py", line 106, in
print(Connect('test', '12345678'))
File "/home/pi/projects/wifi_connect.py", line 54, in Connect
scheme.activate()
File "/home/pi/.local/lib/python3.9/site-packages/wifi/scheme.py", line 172, in activate
subprocess.check_output(['/sbin/ifdown', self.interface], stderr=subprocess.STDOUT)
File "/usr/lib/python3.9/subprocess.py", line 424, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/lib/python3.9/subprocess.py", line 528, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/sbin/ifdown', 'wlan0']' returned non-zero exit status 1.
Yes:
Here you are (old code that worked a long time ago^^)
To make it work on windows 10 just use:
subprocess.check_output(["netsh", "wlan", "show", "network"])