Web Request Interceptor GUI in Python – FuzzuTech

 Demo :


Click Video πŸ‘‡πŸ‘‡πŸ‘‡





πŸ–Š️ Description:

A modern Python GUI app to intercept and block suspicious URLs using regex patterns. Great for cybersecurity awareness and ethical hacking demos. Built with tkinter and ttkbootstrap by FuzzuTech.


🌟 Features:

  • Regex-based URL blocking

  • Request interception using requests

  • GUI built with tkinter + ttkbootstrap

  • Real-time header view

  • Hacker-style dark mode interface

  • Beginner friendly Python script

  • Educational cybersecurity tool


Code :


import tkinter as tk

from tkinter import ttk, messagebox

import requests

from ttkbootstrap import Style

import re


class InterceptorApp:

    def __init__(self, root):

        self.root = root

        self.root.title("Web Request Interceptor - FuzzuTech")

        self.root.geometry("600x500")

        self.root.resizable(False, False)


        style = Style("cyborg")  # Modern dark theme

        style.master = self.root


        self.patterns = []


        self.url_var = tk.StringVar()

        self.pattern_var = tk.StringVar()


        self.build_gui()


    def build_gui(self):

        frm = ttk.Frame(self.root, padding=20)

        frm.pack(fill=tk.BOTH, expand=True)


        ttk.Label(frm, text="Enter URL:").grid(row=0, column=0, sticky="w")

        ttk.Entry(frm, textvariable=self.url_var, width=50).grid(row=0, column=1, columnspan=2, sticky="ew")


        ttk.Button(frm, text="Send Request", command=self.send_request).grid(row=0, column=3, padx=5)


        ttk.Label(frm, text="Add Block Pattern:").grid(row=1, column=0, sticky="w")

        ttk.Entry(frm, textvariable=self.pattern_var, width=40).grid(row=1, column=1, sticky="ew")

        ttk.Button(frm, text="Add Pattern", command=self.add_pattern).grid(row=1, column=2)


        self.text = tk.Text(frm, wrap=tk.WORD, height=20, bg="#1e1e1e", fg="white", insertbackground="white")

        self.text.grid(row=2, column=0, columnspan=4, pady=10)


        for i in range(4):

            frm.grid_columnconfigure(i, weight=1)


    def add_pattern(self):

        pattern = self.pattern_var.get()

        if pattern:

            self.patterns.append(pattern)

            messagebox.showinfo("Pattern Added", f"Added pattern: {pattern}")

            self.pattern_var.set("")


    def send_request(self):

        url = self.url_var.get().strip()

        if not url:

            messagebox.showerror("Error", "URL field cannot be empty.")

            return


        for pattern in self.patterns:

            if re.search(pattern, url):

                self.text.insert(tk.END, f"[BLOCKED] URL matched pattern: {pattern}\n", "block")

                return


        try:

            response = requests.get(url)

            headers = response.headers


            self.text.insert(tk.END, f"\n--- Headers from {url} ---\n", "header")

            for key, val in headers.items():

                self.text.insert(tk.END, f"{key}: {val}\n")

            self.text.insert(tk.END, "-" * 60 + "\n")


        except Exception as e:

            self.text.insert(tk.END, f"[ERROR] {str(e)}\n", "error")



if __name__ == "__main__":

    root = tk.Tk()

    app = InterceptorApp(root)

    root.mainloop()

Comments

Popular posts from this blog

πŸš€ Simple Login & Registration System in Python Tkinter πŸ“±

πŸ”₯ Advanced MP3 Music Player in Python | CustomTkinter + Pygame | Free Source Code

πŸš€ Create a Python Screen Recorder with Audio (Complete Code)