簡體   English   中英

使用 Python 檢查 Raspberry Pi 是否連接到任何 WiFi.network(不一定是 Inte.net)

[英]Check status if Raspberry Pi is connected to any WiFi network (Not Internet necessarily) using Python

我不想檢查它是否具有 Inte.net 連接。 我只是想檢查它是否連接到 WiFi.network(我已經在 WPA_supplicant 文件中提供了它的 SSID)。This.network 沒有 Inte.net 訪問權限。

問題

iwconfig對我不起作用,但iwgetid

我該如何解決這個問題?

import subprocess
ps = subprocess.Popen(['iwgetid'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
try:
    output = subprocess.check_output(('grep', 'ESSID'), stdin=ps.stdout)
    print(output)
except subprocess.CalledProcessError:
    # grep did not match any lines
    print("No wireless networks connected")

假設您正在運行某種Linux(例如raspbian),則無需為此使用Python,最簡單的方法是:

iwconfig 2>&1 | grep ESSID

從命令行或shell腳本。 如果您已連接到無線網絡,將有輸出,否則,將無輸出。 如果要從Python運行它,可以將其包裝在subprocess

import subprocess
ps = subprocess.Popen(['iwconfig'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
try:
    output = subprocess.check_output(('grep', 'ESSID'), stdin=ps.stdout)
    print(output)
except subprocess.CalledProcessError:
    # grep did not match any lines
    print("No wireless networks connected")

您可以使用以下代碼行來檢查分配給RPI的IP地址

t="$(ifconfig wlan0 | awk '/inet addr/{print substr($2,6)}')"
echo $t
w=${#t}
echo $w

此后請使用任何條件檢查,例如檢查寬度。

t="$(ifconfig wlan0 | awk '/.net addr/{print substr($2,6)}')" echo $tw=${#t} echo $w

我運行此代碼 output 出現 0。

如果我正在運行簡單的命令

t="$(ifconfig wlan0 | awk '/.net addr/{print substr($2,6)}')" echo $tw=${#t} echo $w

output 就像 w=0 echo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM