Forge your network, one packet at a time.
NetForge is a Python-based socket programming toolkit designed to demonstrate core networking concepts through practical tools like port scanning, banner grabbing, TCP/UDP communication, and a multi-client chat system.
This project is ideal for:
- Networking students
- Cybersecurity beginners
- Python learners exploring sockets
- Anyone interested in understanding how network communication works internally
NetForge includes several networking modules:
- Scans a target host for open ports
- Supports custom port ranges
- Uses multithreading for faster scanning
- Connects to a service and retrieves its banner information
- Helps identify server software and service versions
- Simple TCP echo server
- TCP client can send messages and receive responses
- Demonstrates connection-oriented communication
- UDP server receives datagrams
- UDP client sends messages and receives acknowledgments
- Demonstrates connectionless communication
- TCP based chat server
- Supports multiple clients
- Uses threading for concurrent connections
- Python 3.7 or higher
Supported operating systems:
- Linux
- macOS
- Windows
No external libraries required.
NetForge/
│
├── NetForge.py
└── README.md
Run the program:
python NetForge.pyYou will see the interactive menu:
1. Port Scanner
2. Banner Grabber
3. TCP Client / Server
4. UDP Client / Server
5. Chat Application
0. Exit
Select a module and follow the prompts.
Input:
Target IP : 127.0.0.1
Start Port : 20
End Port : 100
Output:
[OPEN] Port 22
[OPEN] Port 80
Input:
Target IP : 127.0.0.1
Target Port : 80
Output:
Banner from 127.0.0.1:80
----------------------------------------
HTTP/1.1 200 OK
Server: Apache/2.4.52
Date: Tue, 02 Apr 2026
----------------------------------------
Server:
Server Port [default 5000]: 5000
[TCP SERVER] Listening on port 5000
Client:
Server IP : 127.0.0.1
Server Port : 5000
>> hello
[ECHO] hello
Server:
[UDP SERVER] Listening on port 6000
Waiting for messages...
Client:
>> test message
[ACK] test message
Server:
[CHAT SERVER] Running on port 9988
Waiting for clients...
Client:
Enter your name: Arshad
Welcome to the chat!
Arshad: Hello everyone
This project demonstrates several important networking concepts:
- Python Socket Programming
- TCP vs UDP communication
- Client-Server architecture
- Multithreading
- Port scanning techniques
- Service banner detection
This project is created for educational purposes only.
Do NOT use this tool against systems without proper authorization. Unauthorized network scanning may violate laws or network policies.
Arshad S
Cybersecurity Enthusiast Python & Networking Learner
Contributions are welcome!
You can:
- Fork the repository
- Improve the code
- Add new networking modules
- Submit pull requests
- Advanced port scanner
- Service detection database
- Packet sniffer module
- GUI interface
- Logging system
- IPv6 support
MIT License
Copyright (c) 2026 Arshad S
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense and/or sell copies.