Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #script that displays public info about your IP, network, geolocation, hardware, etc.
- #wrote this just for practice writing python3 scripts
- #python3 systemInfo.py
- import socket
- from urllib.request import urlopen
- import re
- import json
- import sys, getopt
- import psutil
- import platform
- from datetime import datetime
- import time
- import argparse
- #adds CLI usage for -h or --help
- msg = "Usage: python3 systemInfo.py"
- parser = argparse.ArgumentParser()
- parser = argparse.ArgumentParser(description = msg + "\n-----" + "\n\n\n\n\n This script prints information about your machine and network.")
- parser.parse_args()
- #get hostname
- hostname = socket.gethostname()
- #get IP address
- IPAddr = socket.gethostbyname(hostname)
- print("="*30, "IP Information", "="*30)
- #prints hostname
- print("Your Computer Name is: " + hostname)
- #prints IP address
- print("Your Internal IP Address is: " + IPAddr)
- def public_ip():
- read_res = urlopen("http://ipecho.net/plain").read()
- return read_res.decode("utf-8")
- if __name__ == "__main__":
- print("Getting public IP...")
- print("Public IP: {} ".format(public_ip(), ))
- #gets geo info
- url = "http://ipinfo.io/json"
- #open url
- response = urlopen(url)
- #load json response data
- data = json.load(response)
- #json response data
- IP=data["ip"]
- org=data["org"]
- city = data["city"]
- country=data["country"]
- region=data["region"]
- #print line for better spacing
- print()
- time.sleep(2)
- print("Printing your geolocation information")
- print("="*30, "Geolocation Information", "="*30)
- #Prints IP, region, country, city, org response data
- print("IP : {4} \nRegion : {1} \nCountry : {2} \nCity : {3} \nOrg : {0}".format(org,region,country,city,IP))
- #print line for better spacing
- print()
- time.sleep(2)
- print("Printing your system details \n ")
- time.sleep(2)
- print("="*30, "System Information", "="*30)
- #prints general system info
- uname = platform.uname()
- print(f"System: {uname.system}")
- print(f"Node Name: {uname.node}")
- print(f"Release: {uname.release}")
- print(f"Version: {uname.version}")
- print(f"Machine: {uname.machine}")
- print(f"Processor: {uname.processor}")
- #print how long since computer boot
- print("="*30, "Boot Time", "="*30)
- boot_time_timestamp = psutil.boot_time()
- bt = datetime.fromtimestamp(boot_time_timestamp)
- print(f"Boot Time: {bt.year}/{bt.month}/{bt.day} {bt.hour}:{bt.minute}:{bt.second}")
- #print CPU cores on current machine
- print("="*30, "CPU Info", "="*30)
- # number of cores
- print("Physical cores:", psutil.cpu_count(logical=False))
- print("Total cores:", psutil.cpu_count(logical=True))
- time.sleep(2)
- print()
- print("Printing your network interface details \n ")
- print("="*30, "Network Interfaces", "="*30)
- time.sleep(2)
- #prints network interface info
- if_addrs = psutil.net_if_addrs()
- for interface_name, interface_addresses in if_addrs.items():
- for address in interface_addresses:
- print(f"=== Interface: {interface_name} ===")
- if str(address.family) == 'AddressFamily.AF_INET':
- print(f" IP Address: {address.address}")
- print(f" Netmask: {address.netmask}")
- print(f" Broadcast IP: {address.broadcast}")
- elif str(address.family) == 'AddressFamily.AF_PACKET':
- print(f" MAC Address: {address.address}")
- print(f" Netmask: {address.netmask}")
- print(f" Broadcast MAC: {address.broadcast}")
Add Comment
Please, Sign In to add comment