簡體   English   中英

我如何獲得 Python 以了解用戶連接的 Wifi?

[英]How do I get Python to know what Wifi the user is connected to?

我 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。 預先感謝您的幫助:)

import subprocess

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

對於 Mac OS,使用os模塊查詢機場。 "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I"然后,查看學校分配給SSID的名稱。 對於其他操作系統,它應該是類似的。

這里有一些實際有效的代碼,其他答案在 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")

這將幫助您獲取網絡名稱。

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')

這應該是最好的解決方案:

import subprocess

if 'SchoolWifiName' in subprocess.check_output("netsh wlan show interfaces").decode('utf-8'):
    print('I am on school wifi!')
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!')

暫無
暫無

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

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