· last year · Jun 20, 2024, 08:00 PM
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3# Filename: loading_screen.py
4# Version: 1.0.0
5# Author: Jeoi Reqi
6
7"""
8Description:
9 - This script gathers various system information essential for network management and troubleshooting.
10 It retrieves the following details:
11 - Public IP address:
12 Obtained from an external API endpoint.
13 - User details:
14 Includes the username currently logged into the system.
15 - Computer name:
16 Retrieves the local computer's name.
17 - Operating system:
18 Fetches information about the current operating system.
19 - Wi-Fi network information:
20 Retrieves SSIDs (Service Set Identifiers) and passwords of previously saved Wi-Fi networks on the machine.
21
22 - It presents this information using a simulated loading effect, enhancing user experience with a progress bar visual representation.
23
24Requirements:
25 - Python 3.x
26 - The Following Modules:
27 - json
28 - urllib
29 - subprocess
30 - colorama
31
32Functions:
33 - get_wifi_passwords():
34 Retrieves SSIDs and passwords of saved Wi-Fi networks on the machine.
35
36 - loading():
37 Displays system information with a loading bar effect, including IP,
38 username, PC name, OS, and Wi-Fi information.
39
40Usage:
41 - Ensure Python 3.x is installed.
42 - Install required modules using pip (if not already installed):
43
44 EXAMPLE:
45 'pip install colorama'
46
47 - Run the script.
48
49Additional Notes:
50 - The loading function clears the screen and displays information in a loop,
51 simulating a loading process with a progress bar.
52 - This script requires administrative privileges on Windows to retrieve Wi-Fi passwords.
53
54"""
55
56import os
57import time
58import random
59from json import load
60from urllib.request import urlopen
61import subprocess
62from colorama import init, Fore, Style
63
64# Initialize colorama
65init(autoreset=True)
66
67def get_wifi_passwords():
68 """
69 Retrieves the SSIDs and passwords of saved Wi-Fi networks on the machine.
70
71 Returns:
72 wifi_data (str): A formatted string containing SSIDs and passwords.
73 """
74 wifi_data = ""
75 try:
76 # Get the list of Wi-Fi profiles
77 wifi_profiles = subprocess.check_output("netsh wlan show profiles", shell=True, text=True).split('\n')
78 profiles = [line.split(":")[1].strip() for line in wifi_profiles if "All User Profile" in line]
79
80 for profile in profiles:
81 # Get the Wi-Fi password for each profile
82 wifi_details = subprocess.check_output(f"netsh wlan show profile name=\"{profile}\" key=clear", shell=True, text=True).split('\n')
83 password = None
84 for line in wifi_details:
85 if "Key Content" in line:
86 password = line.split(":")[1].strip()
87 break
88
89 wifi_data += f"SSID: {profile}, Password: {password if password else 'None'}\n"
90
91 except Exception as e:
92 wifi_data += f"Error retrieving Wi-Fi passwords: {e}\n"
93
94 return wifi_data
95
96def loading():
97 """
98 Displays system information with a loading bar effect.
99
100 Retrieves the public IP, username, computer name, operating system, and Wi-Fi information,
101 then displays this information while simulating a loading process with a progress bar.
102 """
103 # Gather system information
104 ip_info = load(urlopen('https://api.myip.com/'))
105 wifi_info = get_wifi_passwords()
106 img = f"""
107IP: {ip_info['ip']}
108Username: {os.getlogin()}
109PC Name: {os.getenv('COMPUTERNAME')}
110Operating System: {os.getenv('OS')}
111
112Known Wi-Fi Networks + Passwords:
113
114{wifi_info}
115 """
116
117 # Display system information with a loading bar
118 for i in range(40):
119 os.system('cls' if os.name == 'nt' else 'clear') # Clear the screen
120 print(img)
121 progress = (Fore.GREEN + "#" * (i + 1) + Style.RESET_ALL).ljust(40, '-')
122 print(f"[{progress}]")
123 time.sleep(random.uniform(0.025, 0.075)) # Random delay between 0.025 and 0.075 seconds
124
125if __name__ == '__main__':
126 loading()
127 print("\n\n\tAll processes completed.\n\n\tExiting Program... GoodBye!\n")
128