我不想检查它是否具有互联网连接!我只是想检查它是否连接到WiFi网络(我已经在WPA_supplicant文件中给出了它的SSID)..这个网络将无法访问Internet。
答案 0 :(得分:2)
假设你正在运行某种类型的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")
答案 1 :(得分:2)
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")
答案 2 :(得分:0)
您可以使用以下代码行来检查分配给RPI的IP地址
t="$(ifconfig wlan0 | awk '/inet addr/{print substr($2,6)}')"
echo $t
w=${#t}
echo $w
在此之后使用任何条件检查 例如检查宽度。