使用 mac 和 essid 连接到 wifi 网络

时间:2021-04-08 01:58:52

标签: python raspberry-pi debian wifi

我搜索了这个,没有找到,这让我很惊讶。

我有一个 wifi 网络的 mac 地址和 ESSID。

网络是开放的。

我想先连接到它然后发送 tcp 数据包。

tcp包部分完成:

host = 'ip'
port = 12345  
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))

在此之前,我无法使用 python 连接到 wifi 网络。

是的,如果你知道python下的ESSID和mac地址,没有任何教程只连接到打开的wifi网络,没有任何代码像

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):
    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



print (Connect('essid',''))

有效。

如何使用 mac 和 essid 连接到 wifi 网络?

0 个答案:

没有答案
相关问题