[英]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.