PYTHON Docs

Last updated: Jan 20th, 2022

Download

Welcome to the mine useful documentation for daily work on web developer and computer programming. Thanks to PrettyDocs for theme template layout; download it at the page linked in the button below.

Download PrettyDocs

PrismJS

PrismJS is used as the syntax highlighter here. You can build your own version via their website should you need to.

Font Color & Style

Customize font and style of printed text in python script.


### COLORS & STYLE DEFINITION ###
class colors:
    reset='\033[0m'
    bold='\033[01m'
    disable='\033[02m'
    underline='\033[04m'
    reverse='\033[07m'
    strikethrough='\033[09m'
    invisible='\033[08m'
    class fg:
        black='\033[30m'
        red='\033[31m'
        green='\033[32m'
        orange='\033[33m'
        blue='\033[34m'
        purple='\033[35m'
        cyan='\033[36m'
        lightgrey='\033[37m'
        darkgrey='\033[90m'
        lightred='\033[91m'
        lightgreen='\033[92m'
        yellow='\033[93m'
        lightblue='\033[94m'
        pink='\033[95m'
        lightcyan='\033[96m'
    class bg:
        black='\033[40m'
        red='\033[41m'
        green='\033[42m'
        orange='\033[43m'
        blue='\033[44m'
        purple='\033[45m'
        cyan='\033[46m'
        lightgrey='\033[47m'

# example
print(f"{colors.bg.red}{colors.fg.orange}I'm a colored string{colors.reset}")
                                    

IP Scanner

Simple scripts that scans lan network IPs.

Version One (Unix only)

import scapy.all as scapy


def scan(ip):
    arp_req_frame = scapy.ARP(pdst = ip)

    broadcast_ether_frame = scapy.Ether(dst = "ff:ff:ff:ff:ff:ff")
    
    broadcast_ether_arp_req_frame = broadcast_ether_frame / arp_req_frame

    answered_list = scapy.srp(broadcast_ether_arp_req_frame, timeout = 1, verbose = False)[0]
    result = []
    for i in range(0,len(answered_list)):
        client_dict = {"ip" : answered_list[i][1].psrc, "mac" : answered_list[i][1].hwsrc}
        result.append(client_dict)

    return result

def display_result(result):
    print("-----------------------------------\nIP Address\tMAC Address\n-----------------------------------")
    for i in result:
        print("{}\t{}".format(i["ip"], i["mac"]))


target = input("Enter Target IP Address/Adresses: ")
scanned_output = scan(target)
display_result(scanned_output)
                                    
Version Two (Unix)

import subprocess
import re


def Get_Host(x):
    Dot_Counter = 0
    Pos_Counter = 0
    for i in x:
        if i == ".":
            Dot_Counter += 1
        if Dot_Counter == 3:
            return (x[0:Pos_Counter + 1], x[Pos_Counter + 1: ])
            break
        Pos_Counter += 1


First_ip = input("Enter the first IP Address: ")
Last_ip = input("Enter the last IP Address: ")

Network, First_Host = Get_Host(First_ip)
Network, Last_Host = Get_Host(Last_ip)

Empty_String = ""
Counter = 0

for i in range(int(First_Host), int(Last_Host) + 1):
    Process = subprocess.getoutput("ping -c 1 " + Network + str(i))
    Empty_String += Process

    String_Needed = re.compile(r"ttl=")
    mo = String_Needed.search(Empty_String)
    try:
        if mo.group() == "ttl=":
            print("Host " + Network + str(i) + " is UP")
    except:
        print("Host " + Network + str(i) + " is Down")
    
    Empty_String = ""

print("Completed")
                                    
Version Two (Windows)

import subprocess
import re


def Get_Host(x):
    Dot_Counter = 0
    Pos_Counter = 0
    for i in x:
        if i == ".":
            Dot_Counter += 1
        if Dot_Counter == 3:
            return (x[0:Pos_Counter + 1], x[Pos_Counter + 1: ])
            break
        Pos_Counter += 1


First_ip = input("Enter the first IP Address: ")
Last_ip = input("Enter the last IP Address: ")

Network, First_Host = Get_Host(First_ip)
Network, Last_Host = Get_Host(Last_ip)

Empty_String = ""
Counter = 0

for i in range(int(First_Host), int(Last_Host) + 1):
    Process = subprocess.getoutput("ping -n 1 " + Network + str(i))
    Empty_String += Process

    String_Needed = re.compile(r"TTL=")
    mo = String_Needed.search(Empty_String)
    try:
        if mo.group() == "ttl=":
            print("Host " + Network + str(i) + " is UP")
    except:
        print("Host " + Network + str(i) + " is Down")
    
    Empty_String = ""

print("Completed")