A Python LAN scanning tool that uses nmap to discover devices on the local network
Project description
Simple LAN Scanner
๐ A powerful yet simple network scanner for discovering devices on your local network
โจ Features
- ๐ Fast Network Discovery - Leverages nmap for efficient ping sweeps
- ๐ป Dual Interface - Both CLI and GUI options available
- ๐ Device Tracking - Persistent storage with historical data
- ๐ Smart Filtering - Search by MAC, IP, hostname, or manufacturer
- ๐ Multiple Export Formats - JSON and CSV support
- ๐ฏ Auto Network Detection - Intelligently finds your local network
- ๐ Real-time Monitoring - Continuous scanning with customizable intervals
- ๐จ Modern GUI - Clean, intuitive interface with online/offline status
๐ Quick Start
Installation
# From PyPI (recommended)
pip install simple-lan-scanner[cli]
# From source
git clone https://github.com/IBN5100-0/simple-lan-scanner.git
cd simple-lan-scanner
pip install -e .[cli]
Requirements
- Python 3.10+
- nmap installed and in PATH
Basic Usage
# Quick network scan
lan-scan scan
# Launch GUI
lan-scan gui
# Monitor network (updates every 30s)
lan-scan monitor
# Export results
lan-scan scan -o devices.json
๐ธ Screenshots
CLI Interface
MAC Address | IP Address | Hostname | Manufacturer | First Seen | Last Seen
------------------------------------------------------------------------------------------------------------------------------------------------
XX:XX:XX:XX:XX:XX | 192.168.1.1 | router.local | Netgear Inc. | 2025-01-15 10:30 | 2025-01-15 14:45
YY:YY:YY:YY:YY:YY | 192.168.1.100 | laptop.local | Apple Inc. | 2025-01-15 10:30 | 2025-01-15 14:45
- ๐ข Green = Online (seen < 2 minutes ago)
- โช Default = Offline
GUI Features
- Real-time device monitoring
- Search and filter capabilities
- Export to JSON/CSV
- Detailed device information
- Context menu for quick actions
๐ ๏ธ Advanced Usage
CLI Commands
# Scan specific network
lan-scan scan --network 192.168.1.0/24
# Monitor with filters
lan-scan monitor --online-only --search "apple"
# Custom scan interval
lan-scan monitor --interval 60 --json devices.json
Python API
from simple_scanner import NetworkMonitor
# Initialize scanner
monitor = NetworkMonitor()
# Scan network
monitor.scan()
# Get devices
devices = monitor.devices()
for device in devices:
print(f"{device.mac_address} - {device.ip_address}")
# Export results
monitor.export_json("scan_results.json")
๐ Documentation
- ๐ Full Documentation - Complete usage guide
- ๐ก Examples - Code examples and use cases
- ๐ค Contributing - How to contribute
- ๐ Changelog - Version history
- ๐ Security - Security policy
๐๏ธ Project Structure
simple-lan-scanner/
โโโ src/simple_scanner/ # Core package
โโโ tests/ # Test suite
โโโ docs/ # Documentation
โโโ examples/ # Usage examples
โโโ .github/ # GitHub configuration
๐งช Development
# Setup development environment
git clone https://github.com/IBN5100-0/simple-lan-scanner.git
cd simple-lan-scanner
pip install -e .[dev]
# Run tests
pytest
# Run with coverage
pytest --cov=simple_scanner
# Format code
black src/ tests/
๐ค Contributing
We welcome contributions! Please see our Contributing Guide for details.
Areas for Contribution
- IPv6 support
- Web interface
- Additional export formats
- Performance optimizations
- Documentation improvements
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
๐ Links
Made with โค๏ธ by IBN5100-0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file simple_lan_scanner-1.0.1.tar.gz.
File metadata
- Download URL: simple_lan_scanner-1.0.1.tar.gz
- Upload date:
- Size: 29.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32148c63a6d98f185463126f3bb94a72545bdf345c1bf26e8e12e3f75eb06a16
|
|
| MD5 |
81e1245f6bff58fe1f3af54049a2fc5b
|
|
| BLAKE2b-256 |
f180c0ed42ae42c653b5ea3a87b0c84d04509d554a474830455d2fd12d62ea25
|
File details
Details for the file simple_lan_scanner-1.0.1-py3-none-any.whl.
File metadata
- Download URL: simple_lan_scanner-1.0.1-py3-none-any.whl
- Upload date:
- Size: 20.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7491ea15e23f4f02afe416bfaf5c9e0401ce4ef7780cd583b8fb60f86c2f3e9
|
|
| MD5 |
fcaf97bc51b0e0cdf83ef8956c62bd9a
|
|
| BLAKE2b-256 |
86528ec3bb53a9006f89be0a2c4cf47791c33ba79ff5662651db5fb38a7bf04b
|