<p align="center">
<img src="https://raw.githubusercontent.com/Wing9897/ipscan/main/assets/banner.svg" alt="ipscan banner" width="100%" />
</p>
<div align="center">
# ipscan
Fast IP scanner — multithreaded Ping and ARP scanning (Windows, Linux, macOS)
[](https://pypi.org/project/ipscan/)



Language:
[English](README.md) · [繁體中文](README.zh-TW.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Deutsch](README.de.md) · [Français](README.fr.md) · [Italiano](README.it.md) · [Español](README.es.md) · [Português BR](README.pt-BR.md) · [Русский](README.ru.md)
</div>
---
## Table of contents
- Quick start
- Features
- CLI tools
- Python API
- Performance notes
- Requirements
- Contributing
---
## Quick start
Install from PyPI:
```bash
pip install ipscan
```
**Windows users**: Install optional Windows-optimized ping support:
```bash
pip install "ipscan[windows]"
```
**Note**: Linux ARP scanning requires sudo privileges for optimal performance.
### CLI
```bash
fping # High-speed continuous ping (interactive)
sping # Simple range ping scan
sarp # ARP range scan
```
### Python API
Ping scan:
```python
from ipscan import ping_range, PingScanner
online_hosts = ping_range("192.168.1.1", "192.168.1.254")
scanner = PingScanner(timeout=1.0)
results = scanner.scan_range("10.0.0.1", "10.0.0.100")
```
ARP scan:
```python
from ipscan import arp_range, ArpScanner
host_info = arp_range("192.168.1.1", "192.168.1.254")
for ip, mac in host_info.items():
print(f"{ip} -> {mac}")
scanner = ArpScanner()
results = scanner.scan_range("10.0.0.1", "10.0.0.100")
```
## Features
- **Cross-platform**: Windows, Linux, macOS support with automatic OS detection
- **Multithreaded scanning**: High-speed concurrent operations
- **Smart implementations**: Platform-optimized for best performance
- Windows: Native SendARP API + ping3 library
- Linux: Direct scapy ARP packets + system ping
- macOS: System arp + ping commands
- **Simple API**: Unified interface across all platforms
- **Progress tracking**: Real-time progress bars and clean output
## Platform Details
| Feature | Windows | Linux | macOS |
|---------|---------|-------|-------|
| **Ping scanning** | ping3 library | system ping | system ping |
| **ARP scanning** | SendARP API | scapy packets | arp command |
| **Permissions** | No special permissions | sudo for ARP | No special permissions |
| **Performance** | Optimized | Optimized | Good |
## Usage Examples
### Linux ARP scanning (requires sudo)
```bash
sudo sarp
# Enter IP range when prompted
```
### High-speed continuous ping
```bash
fping
# Enter target IP and interval
```
### Range ping scanning
```bash
sping
# Enter start and end IP addresses
```
## Requirements
- **Python 3.7+**
- **Cross-platform support**: Windows, Linux, macOS
- **Dependencies**:
- `tqdm` (progress bars)
- `scapy` (ARP packet generation)
- `ping3` (Windows optimization, optional)
## Contributing
Issues and PRs are welcome. If you like this project, consider starring it.
---
<div align="center">
Made with ❤️ for network tinkerers.
</div>
Raw data
{
"_id": null,
"home_page": "https://github.com/Wing9897/ipscan.git",
"name": "ipscan",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "ip scan ping arp network scanner",
"author": "Wing",
"author_email": "tomt99688@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/68/d8/8e44643513ccb090c8309183bc7350d5a01fb7c71544f58809a16f1a6e6a/ipscan-1.3.0.tar.gz",
"platform": null,
"description": "<p align=\"center\">\r\n <img src=\"https://raw.githubusercontent.com/Wing9897/ipscan/main/assets/banner.svg\" alt=\"ipscan banner\" width=\"100%\" />\r\n</p>\r\n\r\n<div align=\"center\">\r\n\r\n# ipscan\r\n\r\nFast IP scanner \u2014 multithreaded Ping and ARP scanning (Windows, Linux, macOS)\r\n\r\n[](https://pypi.org/project/ipscan/)\r\n\r\n\r\n\r\n\r\nLanguage:\r\n[English](README.md) \u00b7 [\u7e41\u9ad4\u4e2d\u6587](README.zh-TW.md) \u00b7 [\u7b80\u4f53\u4e2d\u6587](README.zh-CN.md) \u00b7 [\u65e5\u672c\u8a9e](README.ja.md) \u00b7 [\ud55c\uad6d\uc5b4](README.ko.md) \u00b7 [Deutsch](README.de.md) \u00b7 [Fran\u00e7ais](README.fr.md) \u00b7 [Italiano](README.it.md) \u00b7 [Espa\u00f1ol](README.es.md) \u00b7 [Portugu\u00eas BR](README.pt-BR.md) \u00b7 [\u0420\u0443\u0441\u0441\u043a\u0438\u0439](README.ru.md)\r\n\r\n</div>\r\n\r\n---\r\n\r\n## Table of contents\r\n\r\n- Quick start\r\n- Features\r\n- CLI tools\r\n- Python API\r\n- Performance notes\r\n- Requirements\r\n- Contributing\r\n\r\n---\r\n\r\n## Quick start\r\n\r\nInstall from PyPI:\r\n\r\n```bash\r\npip install ipscan\r\n```\r\n\r\n**Windows users**: Install optional Windows-optimized ping support:\r\n```bash\r\npip install \"ipscan[windows]\"\r\n```\r\n\r\n**Note**: Linux ARP scanning requires sudo privileges for optimal performance.\r\n\r\n### CLI\r\n\r\n```bash\r\nfping # High-speed continuous ping (interactive)\r\nsping # Simple range ping scan\r\nsarp # ARP range scan\r\n```\r\n\r\n### Python API\r\n\r\nPing scan:\r\n\r\n```python\r\nfrom ipscan import ping_range, PingScanner\r\n\r\nonline_hosts = ping_range(\"192.168.1.1\", \"192.168.1.254\")\r\n\r\nscanner = PingScanner(timeout=1.0)\r\nresults = scanner.scan_range(\"10.0.0.1\", \"10.0.0.100\")\r\n```\r\n\r\nARP scan:\r\n\r\n```python\r\nfrom ipscan import arp_range, ArpScanner\r\n\r\nhost_info = arp_range(\"192.168.1.1\", \"192.168.1.254\")\r\nfor ip, mac in host_info.items():\r\n print(f\"{ip} -> {mac}\")\r\n\r\nscanner = ArpScanner()\r\nresults = scanner.scan_range(\"10.0.0.1\", \"10.0.0.100\")\r\n```\r\n\r\n## Features\r\n\r\n- **Cross-platform**: Windows, Linux, macOS support with automatic OS detection\r\n- **Multithreaded scanning**: High-speed concurrent operations\r\n- **Smart implementations**: Platform-optimized for best performance\r\n - Windows: Native SendARP API + ping3 library\r\n - Linux: Direct scapy ARP packets + system ping\r\n - macOS: System arp + ping commands\r\n- **Simple API**: Unified interface across all platforms\r\n- **Progress tracking**: Real-time progress bars and clean output\r\n\r\n## Platform Details\r\n\r\n| Feature | Windows | Linux | macOS |\r\n|---------|---------|-------|-------|\r\n| **Ping scanning** | ping3 library | system ping | system ping |\r\n| **ARP scanning** | SendARP API | scapy packets | arp command |\r\n| **Permissions** | No special permissions | sudo for ARP | No special permissions |\r\n| **Performance** | Optimized | Optimized | Good |\r\n\r\n## Usage Examples\r\n\r\n### Linux ARP scanning (requires sudo)\r\n```bash\r\nsudo sarp\r\n# Enter IP range when prompted\r\n```\r\n\r\n### High-speed continuous ping\r\n```bash\r\nfping\r\n# Enter target IP and interval\r\n```\r\n\r\n### Range ping scanning\r\n```bash\r\nsping\r\n# Enter start and end IP addresses\r\n```\r\n\r\n## Requirements\r\n\r\n- **Python 3.7+**\r\n- **Cross-platform support**: Windows, Linux, macOS\r\n- **Dependencies**:\r\n - `tqdm` (progress bars)\r\n - `scapy` (ARP packet generation)\r\n - `ping3` (Windows optimization, optional)\r\n\r\n## Contributing\r\n\r\nIssues and PRs are welcome. If you like this project, consider starring it.\r\n\r\n---\r\n\r\n<div align=\"center\">\r\nMade with \u2764\ufe0f for network tinkerers.\r\n</div>\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Fast IP scanner \u2014 multithreaded Ping and ARP scanning",
"version": "1.3.0",
"project_urls": {
"English README": "https://github.com/Wing9897/ipscan/blob/main/README.md",
"Homepage": "https://github.com/Wing9897/ipscan.git",
"Source": "https://github.com/Wing9897/ipscan",
"\u7e41\u9ad4\u4e2d\u6587 README": "https://github.com/Wing9897/ipscan/blob/main/README.zh-TW.md"
},
"split_keywords": [
"ip",
"scan",
"ping",
"arp",
"network",
"scanner"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7c96dfc7badffce7a3592b2f20a815b7954b46a018e7db514ada57ed0dd78185",
"md5": "d0c6bdd9fe7c1e6937c0e38a3499965e",
"sha256": "74e7af021bbb6eb688fbf856230267907bb6f6a721b4cf8adca976072d0a6a17"
},
"downloads": -1,
"filename": "ipscan-1.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d0c6bdd9fe7c1e6937c0e38a3499965e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 10388,
"upload_time": "2025-09-16T05:18:27",
"upload_time_iso_8601": "2025-09-16T05:18:27.511233Z",
"url": "https://files.pythonhosted.org/packages/7c/96/dfc7badffce7a3592b2f20a815b7954b46a018e7db514ada57ed0dd78185/ipscan-1.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "68d88e44643513ccb090c8309183bc7350d5a01fb7c71544f58809a16f1a6e6a",
"md5": "9988e246df6af92d6a2fa14f331e44ec",
"sha256": "73ca74fe9f94a42adda1ebac87aa7105f67a04f97595351cdd0e36c968764f4f"
},
"downloads": -1,
"filename": "ipscan-1.3.0.tar.gz",
"has_sig": false,
"md5_digest": "9988e246df6af92d6a2fa14f331e44ec",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 11123,
"upload_time": "2025-09-16T05:18:28",
"upload_time_iso_8601": "2025-09-16T05:18:28.965563Z",
"url": "https://files.pythonhosted.org/packages/68/d8/8e44643513ccb090c8309183bc7350d5a01fb7c71544f58809a16f1a6e6a/ipscan-1.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-16 05:18:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Wing9897",
"github_project": "ipscan",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "ipscan"
}