A professional Python-based network scanner that discovers devices on a local network using ARP requests, resolves hostnames, identifies MAC vendors using the official IEEE OUI database, and exports scan results in CSV and JSON formats.
Designed for learning networking fundamentals, cybersecurity, and Python development.
- Discover active devices on a local network
- Retrieve IP Address
- Retrieve MAC Address
- Resolve Hostname
- Offline IEEE MAC Vendor Lookup
- CSV Report Generation
- JSON Report Generation
- Colorful Terminal Output
- Progress Bar
- Multi-threaded Device Processing
- Logging Support
- Cross Platform (Windows & Linux)
Python-Network-Scanner/
│
├── scanner.py
├── scanner_core.py
├── vendor_lookup.py
├── report.py
├── logger.py
├── progress.py
├── banner.py
├── config.py
├── utils.py
│
├── data/
│ └── oui.csv
│
├── reports/
├── logs/
├── screenshots/
│
├── requirements.txt
├── LICENSE
├── README.md
└── .gitignore
Clone the repository:
git clone https://github.com/YOUR_USERNAME/Python-Network-Scanner.git
cd Python-Network-ScannerInstall dependencies:
pip install -r requirements.txtInteractive Mode
python scanner.pyCommand Line
python scanner.py -n 192.168.1.0/24Custom Threads
python scanner.py -n 192.168.1.0/24 -t 20+---------------+-------------------+---------------------------+------------+
| IP Address | MAC Address | Vendor | Hostname |
+---------------+-------------------+---------------------------+------------+
| 192.168.1.1 | 98:9D:B2:56:83:E9 | Cisco Systems | Router |
| 192.168.1.15 | 80:D2:1D:EF:11:DD | AzureWave Technology Inc. | Desktop |
| 192.168.1.23 | 38:E2:CA:11:22:33 | Katun Corporation | Laptop |
+---------------+-------------------+---------------------------+------------+
The scanner automatically generates:
reports/
scan_YYYY-MM-DD_HH-MM-SS.csv
scan_YYYY-MM-DD_HH-MM-SS.json
Logs are stored inside:
logs/
Each execution generates a timestamped log file.
- Python
- Scapy
- Colorama
- Tabulate
- ThreadPoolExecutor
- IEEE OUI Database
Place screenshots inside:
screenshots/
Example:
screenshots/
├── banner.png
├── scanning.png
├── output.png
├── csv_report.png
Then include them like:
## Application


- Port Scanner
- OS Detection
- Ping Sweep
- Service Detection
- HTML Reports
- Excel Export
- GUI Version
- Interface Selection
- IPv6 Support
Vikalp Pandey
MCA Graduate
Cybersecurity Enthusiast
Python Developer
Networking Learner
GitHub: https://github.com/YOUR_USERNAME
LinkedIn: https://linkedin.com/in/YOUR_PROFILE