Я пытаюсь подключиться к Wi-Fi через терминал python и linux, но в обоих случаях он не работает со мной.
Для python я использую эту библиотеку https://wifi.readthedocs.org/en/latest/scanning.html сканирование и сохранение схемы работает нормально, но всякий раз, когда я набираю эту строку кода schem.activate(), и я не получаю выход
Любые идеи, что не так с библиотекой, и если вы использовали ее раньше или нет?
Я также попытался подключиться к сетям Wi-Fi, используя CLI. Я googled и обнаружил, что должен делать эти три заявления 1- iwlist wlan0 scan//для сканирования беспроводных сетей 2- iwconfig wlan0 essid "Mywirelessnetwork" // связать с сетью 3- dhclient wla0//Чтобы получить UP
Всякий раз, когда я делаю шаг 2, а затем проверяю iwconfig wlan0, я обнаружил, что беспроводной интерфейс не связан!!
Любые идеи???
То, что я пытаюсь сделать, это иметь библиотеку для подключения к Wi-Fi, предпочтительно через функцию или библиотеку python, и тестировать на малиновый PI, потому что я создаю некоторые приложения, требующие сетевого подключения.
Сначала попробуйте посмотреть на эти ссылки: http://packages.ubuntu.com/raring/python-wicd https://wifi.readthedocs.org/en/latest/
И если вы хотите использовать команды bash через python, попробуйте этот код:
from subprocess import Popen, STDOUT, PIPE
from time import sleep
handle = Popen('netsh wlan connect wifi_name', stdout=PIPE, stdin=PIPE, shell=True, stderr=STDOUT)
sleep(10)
handle.stdint.write('wifi_password\n')
while handle.poll() == None:
print handle.stdout.readline().strip() # print the result
Но убедитесь, что вы работаете как суперпользователь в Linux, но в Windows нет проблем.
Изменить: здесь вы можете найти что-нибудь о python: http://pythonwifi.wikispot.org/Front_Page
Ниже приведен общий подход с использованием модуля python os
и команды Linux iwlist
для поиска по списку устройств wifi и команды nmcli
для подключения к предполагаемому устройству.
В этом коде функция запуска находит SSID устройств, которые соответствуют указанному имени (который может быть шаблоном регулярного выражения или уникальной частью имени сервера), затем подключается ко всем устройствам, которые соответствуют вашим ожидаемым критериям, вызывая функцию connection
.
"""
Search for a specific wifi ssid and connect to it.
written by kasramvd.
"""
import os
class Finder:
def __init__(self, *args, **kwargs):
self.server_name = kwargs['server_name']
self.password = kwargs['password']
self.interface_name = kwargs['interface']
self.main_dict = {}
def run(self):
command = """sudo iwlist wlp2s0 scan | grep -ioE 'ssid:"(.*{}.*)'"""
result = os.popen(command.format(self.server_name))
result = list(result)
if "Device or resource busy" in result:
return None
else:
ssid_list = [item.lstrip('SSID:').strip('"\n') for item in result]
print("Successfully get ssids {}".format(str(ssid_list)))
for name in ssid_list:
try:
result = self.connection(name)
except Exception as exp:
print("Couldn't connect to name : {}. {}".format(name, exp))
else:
if result:
print("Successfully connected to {}".format(name))
def connection(self, name):
try:
os.system("nmcli d wifi connect {} password {} iface {}".format(name,
self.password,
self.interface_name))
except:
raise
else:
return True
if __name__ == "__main__":
# Server_name is a case insensitive string, and/or regex pattern which demonstrates
# the name of targeted WIFI device or a unique part of it.
server_name = "example_name"
password = "your_password"
interface_name = "your_interface_name" # i. e wlp2s0
F = Finder(server_name=server_name,
password=password,
interface=interface_name)
F.run()
os.system
в функции connection
примет его как разные параметры ... так что это ошибка в вашем коде.
help('wicd')
в вашей оболочке python!