print("Start Wifi ECN login tool ...") import urllib.request import urllib.parse import sys import getopt import os import json dir_path = os.path.dirname(os.path.realpath(__file__)) username = "" password = "" argv = sys.argv[1:] try: opts, args = getopt.getopt(argv, "hu:p:", ["username=", "password="]) except getopt.GetoptError: print('wifiecn.py -u -p ') sys.exit(2) for opt, arg in opts: if opt == '-h': print('wifiecn.py -u -p ') sys.exit() elif opt in ("-u", "--username"): username = arg elif opt in ("-p", "--password"): password = arg if username == "" or password == "": print('wifiecn.py -u -p ') sys.exit(2) data = {"action": "authenticate", "from_ajax": "true", "login": username, "password": password, "policy_accept": "true", "wispr_mode": "false"} headers = { 'origin': "https://portailwifi.ec-nantes.fr/", 'upgrade-insecure-requests': "1", 'user-agent': "Mozilla/5.0", 'content-type': "application/x-www-form-urlencoded", 'accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", 'accept-encoding': "gzip, deflate, br", 'accept-language': "en-US,en;q=0.8,fr-FR;q=0.6,fr;q=0.4" } bin_data = urllib.parse.urlencode(data).encode() # HTTP Request targetUrl = "https://portailwifi.ec-nantes.fr/portal_api.php" status = "NoStatus" try : request = urllib.request.Request(targetUrl, bin_data, headers, method="POST") response = urllib.request.urlopen(request).read().decode() except : print("Can't perform an http request against " + targetUrl) print("Are you connected to Wifi-ECN ?") else: pydata = json.loads(response) try: status = pydata['type'] except: try: status = pydata['error']['code'] print("Wifi ECN sent back en error : " + status) except: print("I can't read WifiECN answer. :-(") # End of programm if status == "CONNECT": print("Successfully logged as " + username +". :-)") else: print("Something went wrong. Couldn't connect as " + username +".")