如何让Python知道用户连接到哪个Wifi?

问题描述 投票:0回答:7

我 14 岁,请原谅我的 Python 知识。 我正在尝试使用这样的 if/else 语句使这个程序仅在我在学校时(在学校的 Wifi 上)运行:

if ontheschoolwifi:
     Keep running the program
else:
     close the program because im not at school and wont need it

我想知道如何让python知道如何获取它连接的wifi。 预先感谢您的帮助:)

python python-2.7 module wifi
7个回答
13
投票
import subprocess

if "SchoolWifiName" in subprocess.check_output("netsh wlan show interfaces"):
    print "I am on school wifi!"

10
投票

这里有一些实际有效的代码,其他答案在 Windows 上对我不起作用......

import subprocess

wifi = subprocess.check_output(['netsh', 'WLAN', 'show', 'interfaces'])
data = wifi.decode('utf-8')
if "school_wifi_name" in data:
    print("connected to speccific wifi")
else:
    print("not connected")

6
投票

对于 Mac OS,使用

os
模块查询机场。
"/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I"
然后,查看学校分配给
SSID
的名称。 其他操作系统应该类似。


2
投票

这将帮助您获取网络名称。

import subprocess

subprocess_result = subprocess.Popen('iwgetid',shell=True,stdout=subprocess.PIPE)
subprocess_output = subprocess_result.communicate()[0],subprocess_result.returncode
network_name = subprocess_output[0].decode('utf-8')

2
投票

这应该是最好的解决方案:

import subprocess

if 'SchoolWifiName' in subprocess.check_output("netsh wlan show interfaces").decode('utf-8'):
    print('I am on school wifi!')

1
投票
import subprocess

print(str(subprocess.check_output(['iwgetid -r'], shell=True)).split('\'')[1][:-2])

将打印当前Wi-Fi SSID

检查 SSID 是否具有所需的名称:

import subprocess

if 'School_wifi_name' in str(subprocess.check_output(['iwgetid -r'], shell=True)).split('\'')[1][:-2]:
  print('I am on school Wi-Fi!')

0
投票

Mark Ch 的答案对我不起作用,因为我使用的是 Python 3。要使其工作,您需要通过比较两个字符串来进行非常简单的更改,如下所示:

import subprocess

if "SchoolWifiName" in str(subprocess.check_output("netsh wlan show interfaces")):
    print "I am on school wifi!"
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.