Skip to main content

findpi

What

Find all the Raspberry Pi devices on your network really fast using multithreading in Python 3.8+ and find them fast. Supports all Raspberry Pi models including Pi 5, Pi 4, Pi 3, Pi Zero 2 W, and more.

Stats

Ok, so to compare this to just running nmap vs. findpi:

run 1 run 2 run 3 average
nmap v7.80 6.007 total 5.679 total 4.633 total 5.44 total
findpi v1.2.0 2.899 total 2.682 total 2.696 total 2.76 total

Why

I was sick of waiting forever for the arp / nmap commands to work single-threaded.

Also, arp only works for devices you have seen previously, so you could easily miss things.

Features

  • Multi-threaded scanning for fast network discovery
  • CIDR notation support - scan any subnet size (e.g., /24, /16, /25)
  • All Raspberry Pi models supported - Pi 1, 2, 3, 4, 5, Zero, Zero W, Zero 2 W, Pi 400
  • Modern Python 3.8+ with improved error handling
  • Cross-platform - works on Linux, macOS, and Windows

Installation

# Using uv (recommended)
uv pip install findpi

# Using pip
pip3 install findpi

Usage

sudo findpi use multithreading to get the job done.

NOTE: Must Use SUDO

The application asks you what ip address or range you want to select. The default tries to figure out your current network and set it as default.

Examples

# Scan default network (auto-detected)
sudo findpi

# Scan specific /24 network
sudo findpi
# What net to check? (default 192.168.1.0/24): 192.168.1.0/24

# Scan larger subnet
sudo findpi
# What net to check? (default 192.168.1.0/24): 10.0.0.0/16

# Scan specific IP
sudo findpi
# What net to check? (default 192.168.1.0/24): 10.2.2.113

# Custom thread count
sudo findpi -c 32

Output example:

What network do you want to check? (192.168.1.0/24):
Checking for delicious pi around 192.168.1.0/24...
Found pi: 192.168.1.113
Found pi: 192.168.1.117
Found pi: 192.168.1.119
Found pi: 192.168.1.137
--- 2.45 seconds ---

Supported Raspberry Pi Models

  • Raspberry Pi 1 - b8:27:eb MAC prefix
  • Raspberry Pi 2 - b8:27:eb MAC prefix
  • Raspberry Pi 3 - b8:27:eb, dc:a6:32 MAC prefixes
  • Raspberry Pi 4 - e4:5f:01, dc:a6:32 MAC prefixes
  • Raspberry Pi 5 - dc:a6:32 MAC prefix
  • Raspberry Pi Zero - b8:27:eb MAC prefix
  • Raspberry Pi Zero W - dc:a6:32 MAC prefix
  • Raspberry Pi Zero 2 W - dc:a6:32 MAC prefix
  • Raspberry Pi 400 - e4:5f:01 MAC prefix

Troubleshooting

  1. If you set the threads too high for your system (should be a factor of number of cores) you will start to see timeout errors like the following QUITTING! dnet: Failed to open device en0. The mitigation is to lower the number of threads or leave it at the default.

  2. For large subnets (like /16), the scan may take a long time. Consider using a smaller subnet or specific IP ranges.

  3. If you get permission errors, make sure you're running with sudo or as root.

Metadata

Release files for findpi 1.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for findpi 1.2.2
File Size Uploaded
findpi-1.2.2.tar.gz 65.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for findpi 1.2.2
File Interpreter ABI Platform
findpi-1.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 72.0 kB

Release files / findpi-1.2.2.tar.gz

Download URL findpi-1.2.2.tar.gz
Size 65.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3bd845525e453cf47ef7883dfb420e192dd0fcf5fe7d64f998f59a182148a8d0
BLAKE2b-256 checksum
How to use checksums
79202732b8573ecee2940340a4db84bf2db47ad87af6d351d43266795b02cf30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / findpi-1.2.2-py3-none-any.whl

Download URL findpi-1.2.2-py3-none-any.whl
Size 6.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
10cdf83c65bb3370c18d7c6b1baebf5761b3dae2aa669c8200552d4cb4c2085e
BLAKE2b-256 checksum
How to use checksums
26785509b4931137587abe6b11e4609734296d7ec52b7f82bdc998ee3bcb4f36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release history Release notifications | RSS feed

This release

1.2.2 This release

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

1 release file

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page