simple-lan-scanner


Namesimple-lan-scanner JSON
Version 1.0.1 PyPI version JSON
download
home_pageNone
SummaryA Python LAN scanning tool that uses nmap to discover devices on the local network
upload_time2025-08-01 02:39:40
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords network scanner nmap lan monitoring
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Simple LAN Scanner

[![CI](https://github.com/IBN5100-0/simple-lan-scanner/actions/workflows/tests.yml/badge.svg)](https://github.com/IBN5100-0/simple-lan-scanner/actions/workflows/tests.yml)
[![PyPI](https://img.shields.io/pypi/v/simple-lan-scanner.svg)](https://pypi.org/project/simple-lan-scanner/)
[![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![Requires nmap](https://img.shields.io/badge/requires-nmap-orange.svg)](https://nmap.org/)
[![Documentation](https://img.shields.io/badge/docs-latest-brightgreen)](docs/DOCUMENTATION.md)

> ๐Ÿ” A powerful yet simple network scanner for discovering devices on your local network

<!-- Screenshot placeholder - add actual screenshot here
<p align="center">
  <img src="docs/images/screenshot.png" alt="Simple LAN Scanner Demo" />
</p>
-->

## โœจ 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

```bash
# 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](https://nmap.org/download.html) installed and in PATH

### Basic Usage

```bash
# 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

```bash
# 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

```python
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](docs/DOCUMENTATION.md)** - Complete usage guide
- ๐Ÿ’ก **[Examples](examples/)** - Code examples and use cases
- ๐Ÿค **[Contributing](CONTRIBUTING.md)** - How to contribute
- ๐Ÿ“ **[Changelog](CHANGELOG.md)** - Version history
- ๐Ÿ”’ **[Security](https://github.com/IBN5100-0/simple-lan-scanner/security/policy)** - Security policy

## ๐Ÿ—๏ธ Project Structure

```
simple-lan-scanner/
โ”œโ”€โ”€ src/simple_scanner/    # Core package
โ”œโ”€โ”€ tests/                 # Test suite
โ”œโ”€โ”€ docs/                  # Documentation
โ”œโ”€โ”€ examples/              # Usage examples
โ””โ”€โ”€ .github/               # GitHub configuration
```

## ๐Ÿงช Development

```bash
# 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](CONTRIBUTING.md) 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](LICENSE) file for details.

## ๐Ÿ™ Acknowledgments

- [nmap](https://nmap.org/) - The foundation of our network scanning
- [Click](https://click.palletsprojects.com/) - CLI framework
- [Tkinter](https://docs.python.org/3/library/tkinter.html) - GUI framework

## ๐Ÿ”— Links

- [PyPI Package](https://pypi.org/project/simple-lan-scanner/)
- [GitHub Repository](https://github.com/IBN5100-0/simple-lan-scanner)
- [Issue Tracker](https://github.com/IBN5100-0/simple-lan-scanner/issues)
- [Discussions](https://github.com/IBN5100-0/simple-lan-scanner/discussions)

---

<p align="center">
  Made with โค๏ธ by <a href="https://github.com/IBN5100-0">IBN5100-0</a>
</p>

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "simple-lan-scanner",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "network, scanner, nmap, lan, monitoring",
    "author": null,
    "author_email": "Adam Zalewski <me@yamero.online>",
    "download_url": "https://files.pythonhosted.org/packages/f1/80/c0ed42ae42c653b5ea3a87b0c84d04509d554a474830455d2fd12d62ea25/simple_lan_scanner-1.0.1.tar.gz",
    "platform": null,
    "description": "# Simple LAN Scanner\r\n\r\n[![CI](https://github.com/IBN5100-0/simple-lan-scanner/actions/workflows/tests.yml/badge.svg)](https://github.com/IBN5100-0/simple-lan-scanner/actions/workflows/tests.yml)\r\n[![PyPI](https://img.shields.io/pypi/v/simple-lan-scanner.svg)](https://pypi.org/project/simple-lan-scanner/)\r\n[![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/downloads/)\r\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\r\n[![Requires nmap](https://img.shields.io/badge/requires-nmap-orange.svg)](https://nmap.org/)\r\n[![Documentation](https://img.shields.io/badge/docs-latest-brightgreen)](docs/DOCUMENTATION.md)\r\n\r\n> \ud83d\udd0d A powerful yet simple network scanner for discovering devices on your local network\r\n\r\n<!-- Screenshot placeholder - add actual screenshot here\r\n<p align=\"center\">\r\n  <img src=\"docs/images/screenshot.png\" alt=\"Simple LAN Scanner Demo\" />\r\n</p>\r\n-->\r\n\r\n## \u2728 Features\r\n\r\n- \ud83d\ude80 **Fast Network Discovery** - Leverages nmap for efficient ping sweeps\r\n- \ud83d\udcbb **Dual Interface** - Both CLI and GUI options available\r\n- \ud83d\udcca **Device Tracking** - Persistent storage with historical data\r\n- \ud83d\udd0d **Smart Filtering** - Search by MAC, IP, hostname, or manufacturer\r\n- \ud83d\udcc1 **Multiple Export Formats** - JSON and CSV support\r\n- \ud83c\udfaf **Auto Network Detection** - Intelligently finds your local network\r\n- \ud83d\udd14 **Real-time Monitoring** - Continuous scanning with customizable intervals\r\n- \ud83c\udfa8 **Modern GUI** - Clean, intuitive interface with online/offline status\r\n\r\n## \ud83d\ude80 Quick Start\r\n\r\n### Installation\r\n\r\n```bash\r\n# From PyPI (recommended)\r\npip install simple-lan-scanner[cli]\r\n\r\n# From source\r\ngit clone https://github.com/IBN5100-0/simple-lan-scanner.git\r\ncd simple-lan-scanner\r\npip install -e .[cli]\r\n```\r\n\r\n### Requirements\r\n\r\n- Python 3.10+\r\n- [nmap](https://nmap.org/download.html) installed and in PATH\r\n\r\n### Basic Usage\r\n\r\n```bash\r\n# Quick network scan\r\nlan-scan scan\r\n\r\n# Launch GUI\r\nlan-scan gui\r\n\r\n# Monitor network (updates every 30s)\r\nlan-scan monitor\r\n\r\n# Export results\r\nlan-scan scan -o devices.json\r\n```\r\n\r\n## \ud83d\udcf8 Screenshots\r\n\r\n### CLI Interface\r\n```\r\nMAC Address       | IP Address      | Hostname                  | Manufacturer               | First Seen       | Last Seen\r\n------------------------------------------------------------------------------------------------------------------------------------------------\r\nXX:XX:XX:XX:XX:XX | 192.168.1.1     | router.local              | Netgear Inc.               | 2025-01-15 10:30 | 2025-01-15 14:45\r\nYY:YY:YY:YY:YY:YY | 192.168.1.100   | laptop.local              | Apple Inc.                 | 2025-01-15 10:30 | 2025-01-15 14:45\r\n```\r\n- \ud83d\udfe2 Green = Online (seen < 2 minutes ago)\r\n- \u26aa Default = Offline\r\n\r\n### GUI Features\r\n- Real-time device monitoring\r\n- Search and filter capabilities\r\n- Export to JSON/CSV\r\n- Detailed device information\r\n- Context menu for quick actions\r\n\r\n## \ud83d\udee0\ufe0f Advanced Usage\r\n\r\n### CLI Commands\r\n\r\n```bash\r\n# Scan specific network\r\nlan-scan scan --network 192.168.1.0/24\r\n\r\n# Monitor with filters\r\nlan-scan monitor --online-only --search \"apple\"\r\n\r\n# Custom scan interval\r\nlan-scan monitor --interval 60 --json devices.json\r\n```\r\n\r\n### Python API\r\n\r\n```python\r\nfrom simple_scanner import NetworkMonitor\r\n\r\n# Initialize scanner\r\nmonitor = NetworkMonitor()\r\n\r\n# Scan network\r\nmonitor.scan()\r\n\r\n# Get devices\r\ndevices = monitor.devices()\r\nfor device in devices:\r\n    print(f\"{device.mac_address} - {device.ip_address}\")\r\n\r\n# Export results\r\nmonitor.export_json(\"scan_results.json\")\r\n```\r\n\r\n## \ud83d\udcda Documentation\r\n\r\n- \ud83d\udcd6 **[Full Documentation](docs/DOCUMENTATION.md)** - Complete usage guide\r\n- \ud83d\udca1 **[Examples](examples/)** - Code examples and use cases\r\n- \ud83e\udd1d **[Contributing](CONTRIBUTING.md)** - How to contribute\r\n- \ud83d\udcdd **[Changelog](CHANGELOG.md)** - Version history\r\n- \ud83d\udd12 **[Security](https://github.com/IBN5100-0/simple-lan-scanner/security/policy)** - Security policy\r\n\r\n## \ud83c\udfd7\ufe0f Project Structure\r\n\r\n```\r\nsimple-lan-scanner/\r\n\u251c\u2500\u2500 src/simple_scanner/    # Core package\r\n\u251c\u2500\u2500 tests/                 # Test suite\r\n\u251c\u2500\u2500 docs/                  # Documentation\r\n\u251c\u2500\u2500 examples/              # Usage examples\r\n\u2514\u2500\u2500 .github/               # GitHub configuration\r\n```\r\n\r\n## \ud83e\uddea Development\r\n\r\n```bash\r\n# Setup development environment\r\ngit clone https://github.com/IBN5100-0/simple-lan-scanner.git\r\ncd simple-lan-scanner\r\npip install -e .[dev]\r\n\r\n# Run tests\r\npytest\r\n\r\n# Run with coverage\r\npytest --cov=simple_scanner\r\n\r\n# Format code\r\nblack src/ tests/\r\n```\r\n\r\n## \ud83e\udd1d Contributing\r\n\r\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\r\n\r\n### Areas for Contribution\r\n- IPv6 support\r\n- Web interface\r\n- Additional export formats\r\n- Performance optimizations\r\n- Documentation improvements\r\n\r\n## \ud83d\udcc4 License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\r\n\r\n## \ud83d\ude4f Acknowledgments\r\n\r\n- [nmap](https://nmap.org/) - The foundation of our network scanning\r\n- [Click](https://click.palletsprojects.com/) - CLI framework\r\n- [Tkinter](https://docs.python.org/3/library/tkinter.html) - GUI framework\r\n\r\n## \ud83d\udd17 Links\r\n\r\n- [PyPI Package](https://pypi.org/project/simple-lan-scanner/)\r\n- [GitHub Repository](https://github.com/IBN5100-0/simple-lan-scanner)\r\n- [Issue Tracker](https://github.com/IBN5100-0/simple-lan-scanner/issues)\r\n- [Discussions](https://github.com/IBN5100-0/simple-lan-scanner/discussions)\r\n\r\n---\r\n\r\n<p align=\"center\">\r\n  Made with \u2764\ufe0f by <a href=\"https://github.com/IBN5100-0\">IBN5100-0</a>\r\n</p>\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Python LAN scanning tool that uses nmap to discover devices on the local network",
    "version": "1.0.1",
    "project_urls": null,
    "split_keywords": [
        "network",
        " scanner",
        " nmap",
        " lan",
        " monitoring"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "86528ec3bb53a9006f89be0a2c4cf47791c33ba79ff5662651db5fb38a7bf04b",
                "md5": "fcaf97bc51b0e0cdf83ef8956c62bd9a",
                "sha256": "d7491ea15e23f4f02afe416bfaf5c9e0401ce4ef7780cd583b8fb60f86c2f3e9"
            },
            "downloads": -1,
            "filename": "simple_lan_scanner-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fcaf97bc51b0e0cdf83ef8956c62bd9a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 20229,
            "upload_time": "2025-08-01T02:39:38",
            "upload_time_iso_8601": "2025-08-01T02:39:38.986789Z",
            "url": "https://files.pythonhosted.org/packages/86/52/8ec3bb53a9006f89be0a2c4cf47791c33ba79ff5662651db5fb38a7bf04b/simple_lan_scanner-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f180c0ed42ae42c653b5ea3a87b0c84d04509d554a474830455d2fd12d62ea25",
                "md5": "81e1245f6bff58fe1f3af54049a2fc5b",
                "sha256": "32148c63a6d98f185463126f3bb94a72545bdf345c1bf26e8e12e3f75eb06a16"
            },
            "downloads": -1,
            "filename": "simple_lan_scanner-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "81e1245f6bff58fe1f3af54049a2fc5b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 29158,
            "upload_time": "2025-08-01T02:39:40",
            "upload_time_iso_8601": "2025-08-01T02:39:40.231623Z",
            "url": "https://files.pythonhosted.org/packages/f1/80/c0ed42ae42c653b5ea3a87b0c84d04509d554a474830455d2fd12d62ea25/simple_lan_scanner-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-01 02:39:40",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "simple-lan-scanner"
}
        
Elapsed time: 1.28728s