1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Python】pythonでwifi接続をしてみた。【pywifi】

Last updated at Posted at 2023-02-04

pywifiを使用する経緯

自宅回線に"レオネット"と"ソフトバンクエアー"を引いていおり、普段はソフトバンクエアーを利用してたまにレオネットを使います。
そんなたまにしか出番がないレオネットは90分インターネットにアクセスしないとIPアドレスが払い出されなくなり、ネットワークから切り離れてしまいます。
対処法としてルータのNTPを60分おきに取得する方法があるのですが、設定してもなぜか毎回パスワードをも止められ始末。。。
そこでラズパイのログローテーションで毎分インターネットにアクセスしようと考えましたが、普段はソフトバンクエアーに繋いでいるため、一度レオネットに繋いでからインターネットにアクセスしないといけません。
しかし、レオネットに自動で接続するにはどうすれば。。。

そこで登場しますのがpythonモジュールの"pywifi"です。

pywifiはPythonでWi-Fiを操作するためのライブラリで、Wi-Fiのスキャン、接続、切断などを行うことができます。

インストール

以下コマンドでインストールしてください。

pip install pywifi

作成コード

以下に作成したコードを記載します。

import time
import pywifi
from pywifi import const


wifi = pywifi.PyWiFi()  # pywifiオブジェクトのPyWiFi属性を参照する。
iface = wifi.interfaces()[0]    # コンピューターに接続されているWi-Fiインターフェースのリストを返す。
Name = iface.name() # 取得したWi-Fiインターフェースの名前を取得する。

#profileの作成
profile = pywifi.Profile()
profile.ssid = 'xxx'
profile.auth = const.AUTH_ALG_OPEN
profile.akm.append(const.AKM_TYPE_WPA2PSK)
profile.cipher = const.CIPHER_TYPE_CCMP
profile.key = 'xxx'  
 
iface.remove_all_network_profiles() #Wi-Fiインターフェースからすべてのネットワークプロファイルを削除するための関数。
tmp_profile = iface.add_network_profile(profile)    #Wi-Fiインターフェースに新しいネットワークプロファイルを追加するための関数。
iface.connect(tmp_profile)  #インターネットに接続する。

#"接続成功""接続失敗"の表示。
time.sleep(1)
if iface.status() == const.IFACE_CONNECTED:
    print('接続成功')
else:
    print('接続失敗')

コード解説

xxxは各自の環境にあった値を入力してください。

暗号化方式がAESの場合は以下コードとなります。

profile.cipher = const.CIPHER_TYPE_CCMP

レオネットの暗号化方式がAESと表示されいましたが、pywifiのドキュメントをみてもAESの記載がないのでAESは対応していないのか??
と焦りましたが、実際はそうではなくAESは暗号化アルゴリズムであって、CCMPはAESを用いた暗号化方式なんですよね。
なのでイメージは”AES=CCMP”でOKです。

以下サイトがとても参考になりました。
無線LANの暗号化方式について整理してみた

参照先
pywifi github

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?