Skip to main content

Find Raspberry Pi devices on the network faster than nmap!

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

findpi-1.2.2.tar.gz (65.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

findpi-1.2.2-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file findpi-1.2.2.tar.gz.

File metadata

  • Download URL: findpi-1.2.2.tar.gz
  • Upload date:
  • Size: 65.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for findpi-1.2.2.tar.gz
Algorithm Hash digest
SHA256 3bd845525e453cf47ef7883dfb420e192dd0fcf5fe7d64f998f59a182148a8d0
MD5 81ff9530af4cddb015b9c6006f558a6f
BLAKE2b-256 79202732b8573ecee2940340a4db84bf2db47ad87af6d351d43266795b02cf30

See more details on using hashes here.

File details

Details for the file findpi-1.2.2-py3-none-any.whl.

File metadata

  • Download URL: findpi-1.2.2-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for findpi-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 10cdf83c65bb3370c18d7c6b1baebf5761b3dae2aa669c8200552d4cb4c2085e
MD5 760974e943df4087c0965300374538a0
BLAKE2b-256 26785509b4931137587abe6b11e4609734296d7ec52b7f82bdc998ee3bcb4f36

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page