Local IP Finder (ipscanner)
A professional, cross-platform, fast concurrent local network scanner written in Python.
This tool automatically detects your local IP address and scans your entire /24 subnet using concurrency (ThreadPoolExecutor) for optimal performance, finding all active devices connected to your network.
Features
- Auto-detection: Automatically finds your machine's base network so no hardcoding is necessary.
- Concurrent Scanning: Uses high-performance threading to ping multiple IPs up to 254 times concurrently.
- Cross-Platform: Configures
pingcommands based on the OS (Windows, macOS, Linux). - Graceful Interruptions: Supports fast exit with clean cancellation of threads during
Ctrl+C. - Customizable: Allows defining explicit subnets, thread pool sizing, and timeouts.
- ARP Resolution: Lists the ARP table at the end of the scan to map IPs to MAC addresses.
Output Example
2026-03-11 11:20:05 [INFO] Auto-detected local IP: 10.121.186.162 (Base network: 10.121.186)
2026-03-11 11:20:05 [INFO] Scanning network 10.121.186.0/24 with 50 concurrent threads...
2026-03-11 11:20:06 [INFO] Active IP found: 10.121.186.1
2026-03-11 11:20:06 [INFO] Active IP found: 10.121.186.39
2026-03-11 11:20:07 [INFO] Scan complete. Found 2 active devices.
Retrieving ARP table mapping...
...
Installation
You can install the tool directly from PyPI using pip:
pip install ipscanner
Usage
You can run the script right away to auto-scan your local subnet:
ipscanner
Advanced Usage
You can also use command-line arguments to customize behavior:
usage: ipscanner [-h] [-n NETWORK] [-t THREADS] [--timeout TIMEOUT]
A professional, fast concurrent local network scanner.
options:
-h, --help show this help message and exit
-n NETWORK, --network NETWORK
Base network to scan (e.g., '192.168.1'). Auto-detected if not provided.
-t THREADS, --threads THREADS
Number of concurrent threads for pinging (default: 50).
--timeout TIMEOUT Ping timeout in milliseconds (default: 1000).
Example setting custom threads and network segment:
ipscanner -n 192.168.0 -t 100 --timeout 500
Metadata
Release files for ipscanner 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ipscanner-0.1.0.tar.gz | 4.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ipscanner-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.9 kB
Release files / ipscanner-0.1.0.tar.gz
| Download URL | ipscanner-0.1.0.tar.gz |
|---|---|
| Size | 4.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
585557e3ecac39a770ce6e95cfe728c61a484d820be4c53477326c1c94a466e2
|
|
BLAKE2b-256 checksum How to use checksums |
852b95845d081df474c4357518803ba476a59ccf90dbb8eaecb6dd2ddfd3d89a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / ipscanner-0.1.0-py3-none-any.whl
| Download URL | ipscanner-0.1.0-py3-none-any.whl |
|---|---|
| Size | 5.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e8db6a024ed0f16228b3f0ca6ecb06be3e52a641c17c7726914be969e2bf40da
|
|
BLAKE2b-256 checksum How to use checksums |
ea30b90ff40312398f6be4b8ab9b586a86042b8d1eb91c90062a2dd1b653dc34
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|