Reputation: 153
I'm 14, pardon my Python knowlege. I'm trying to make this program that will only run while I'm at school (on the school's Wifi) using an if/else statement like this:
if ontheschoolwifi:
Keep running the program
else:
close the program because im not at school and wont need it
I'd like to know how to let python know how to get what wifi it is connected to. Thank you, in advance, for your help :)
Upvotes: 12
Views: 23078
Reputation: 1
Mark Ch's answer didn't work for me as I was using Python 3. To make it work, you need to make a very simple change by making a comparison between two strings as follows :
import subprocess
if "SchoolWifiName" in str(subprocess.check_output("netsh wlan show interfaces")):
print "I am on school wifi!"
Upvotes: 0
Reputation: 111
import subprocess
print(str(subprocess.check_output(['iwgetid -r'], shell=True)).split('\'')[1][:-2])
will print the current Wi-Fi SSID
To check if the SSID has the desired name:
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!')
Upvotes: 1
Reputation: 91
This should be the best solution:
import subprocess
if 'SchoolWifiName' in subprocess.check_output("netsh wlan show interfaces").decode('utf-8'):
print('I am on school wifi!')
Upvotes: 2
Reputation: 101
here some code that actually works, the other answers did not work for me on 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")
Upvotes: 10
Reputation: 117
This will help you out to get the network name.
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')
Upvotes: 2
Reputation: 3020
import subprocess
if "SchoolWifiName" in subprocess.check_output("netsh wlan show interfaces"):
print "I am on school wifi!"
Upvotes: 13
Reputation: 2840
For Mac OS query the airport using os
module.
"/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I"
Then, look the name assigned to SSID
by your school.
It should be something similar for the other operating systems.
Upvotes: 6