Skip to main content

Network Scanner

"What's on my network?" - discovers devices on your own local network using two complementary, entirely local techniques. No root required, no cloud dependency.

Tests PyPI version

Usage

"scan the network"
"can you see my Sony TV"
"is my printer on the network"
"scan netværket"                (Danish)
"kan du se min printer"         (Danish)

How it finds devices

1. mDNS/Bonjour (via zeroconf) - most consumer smart devices (Chromecast, HomeKit accessories, printers, many smart speakers) announce themselves on the network. Gives a clean, self-reported name, but only for devices that participate in mDNS - plenty of devices (including many robot vacuums, which talk only to a cloud service) never announce themselves at all, no matter how good the scanner is.

2. Ping sweep + ARP + MAC vendor lookup - catches devices that don't announce themselves. Pings every address in the local /24 subnet (parallelized, a few seconds), reads the OS's own ARP cache to get each responder's MAC address, looks up the MAC's manufacturer via mac-vendor-lookup's bundled offline IEEE database, and tries a reverse-DNS lookup for a hostname. Needs no special privileges - sending a ping via the system binary and reading the ARP cache are both unprivileged operations; only actively rewriting the ARP table would need root, and this skill never does that.

Why both

They catch different, only-partially-overlapping devices:

  • mDNS gives a clean name, but only for announcing devices.
  • Ping+ARP+vendor catches almost anything with an IP, but only gives a manufacturer guess ("a Sony Corporation device") - never a specific model, and even that guess can be missing entirely, since many modern phones/tablets randomize their MAC address by default for privacy, which breaks vendor lookup completely for those devices.

A real, honest limit: you only see what announces itself

If a device is genuinely silent on both fronts - no mDNS, doesn't respond to ping, or (rarer) has no reverse-DNS entry and an unrecognized/randomized MAC - it won't show up, no matter how the scanning is done. A robot vacuum that only talks to its manufacturer's cloud service is invisible to this skill, and there's no way around that from the local network side.

Local-subnet-only - a protocol property, not a policy

mDNS multicast and ARP do not cross routers by design - both techniques are physically incapable of seeing anything outside this device's own local subnet, regardless of any code here. This is not a restriction imposed by this skill; it's just what these protocols do.

Known rough edge

A single physical device can advertise several different mDNS names for different services on the same IP (observed during real testing: one machine advertised both a caching-service name and a separate KDE Connect ID on the same address). Since each IP here only keeps one name, whichever service happens to be processed last wins - not a stable, deterministic choice. Not fixed in this release.

Install

pip install ovos-skill-network-scanner

Development

See DEVELOPMENT.md.

Category

Utility

Tags

#network #scanner #mdns #discovery #lan

Metadata

Release files for ovos-skill-network-scanner 0.0.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 ovos-skill-network-scanner 0.0.2
File Size Uploaded
ovos_skill_network_scanner-0.0.2.tar.gz 28.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ovos-skill-network-scanner 0.0.2
File Interpreter ABI Platform
ovos_skill_network_scanner-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 56.6 kB

Release files / ovos_skill_network_scanner-0.0.2.tar.gz

Download URL ovos_skill_network_scanner-0.0.2.tar.gz
Size 28.0 kB
Tags Source
SHA-256 checksum
How to use checksums
b96773002c421d18493467127f5d3a38d8ec39d9cd87e0eb66daf646a1d9a471
BLAKE2b-256 checksum
How to use checksums
e69194a622764f13727934ce070c6df25c33d282b0df3d2251d648b30f4bc7b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release files / ovos_skill_network_scanner-0.0.2-py3-none-any.whl

Download URL ovos_skill_network_scanner-0.0.2-py3-none-any.whl
Size 28.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2e28a30c9568e1f57e4b197c1f1c1b4e18cef45f758485fff52d2e7fad921241
BLAKE2b-256 checksum
How to use checksums
a2450236596fbf06175a4233f2f1f2266bada65585467a0d14a80f64442d1507
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.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