2017-06-28 25 views
0

目的は、ユーザーがWiFiネットワークを選択することです。私はPHPでWebサーバを稼働しており、使用可能なネットワークをリストしたいと考えています。WifiでスキャンしてPythonを使って表示するには

ウェブページ上のスキャンボタンを押すと、ネットワークのリストが表示されます。ユーザーは、接続先のネットワークを選択することができます。私は現在、情報を取得するPythonスクリプトを実行することを考えています。

選択したネットワークは、接続のために/etc/wpa_supplicant/wpa_supplicant.confに保存されます。

+0

サブプロセスモジュールを確認してください。そして、この答えはhttps://stackoverflow.com/a/31868561/5352244 –

+0

こんにちは、私はそれをチェックアウトします。ありがとう。 – gram95

+0

こんにちは、私はそれを試しました。このエラーが発生しました。 FileNotFoundError [Errno2]そのようなファイルやディレクトリはありません: 'netsh' それはどういう意味でしょうか? – gram95

答えて

0

wpa_cliを実行すると情報が最も簡単なので、Pythonを実行する理由はありません。 Phpはを使用してコマンドを実行します。これはos.systemと同等で、ある程度はPythonのsubprocess.check_outputです。

2つのコマンドを順番に実行する必要があります。最初に失敗した場合は、WiFiカードがスキャンできないため、2番目のカードは使用できません。

wpa_cli -i wlan0 scan 

これは、「OK」を返す必要があるとifconfigによって示されるようにwlan0は、無線インタフェースの名前です。これは典型的にはwlan0であり、時間の経過とともに変化しません。これは、より多くのWiFiカードがpiに追加されたときだけです。

wpa_cli -i wlan0 scan_results 

これは、ヘッダーで複数の行を返します。

bssid/frequency/signal level/flags/ssid 
b2:c2:87:77:62:73  2437 -50  [WPA2-EAP-CCMP][ESS] Ziggo 
1c:3a:de:c3:f8:cf  2472 -54  [WPA2-PSK-CCMP+TKIP][WPS][ESS] HZN246837438 

あなたが最初の行を破棄し、空白文字で残りの行を分割することができます。 Phpはこれを行うことができ、最大4つの分割(5つの要素をもたらす)を許可することを確認します。

私は、rpi-3でDjango(python)を使いたいと思っています。 PHPを使ったWebサーバーの場合、プロセスは同じです。

+0

こんにちはMelvyn、情報ありがとう。 RPiのターミナルであなたが言ったコマンドを試してみました。また、Phpがそうすることができると言ったときに、PHPファイルに全く同じコマンドを入力して実行するだけでいいのか? – gram95

+0

私はshell_execをリンクしましたが、最初はそれを忘れました。したがって、 'shell_exec'関数の引数としてコマンドを入力してください。 – Melvyn

関連する問題