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

Download files

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

Source Distribution

ovos_skill_network_scanner-0.0.1.tar.gz (28.0 kB view details)

Uploaded Source

Built Distribution

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

ovos_skill_network_scanner-0.0.1-py3-none-any.whl (28.6 kB view details)

Uploaded Python 3

File details

Details for the file ovos_skill_network_scanner-0.0.1.tar.gz.

File metadata

File hashes

Hashes for ovos_skill_network_scanner-0.0.1.tar.gz
Algorithm Hash digest
SHA256 2907b52190e9b875683db4c6123f3cf214ead6dd00f78940e6076321db87e98d
MD5 acf92f0857ac18b3c4baa68e038f06d5
BLAKE2b-256 ba609a41a473b4c8e0361f406552a4ba076d3cbb0337d33e12e9563e6a90127a

See more details on using hashes here.

Provenance

The following attestation bundles were made for ovos_skill_network_scanner-0.0.1.tar.gz:

Publisher: publish.yml on andlo/ovos-skill-network-scanner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ovos_skill_network_scanner-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ovos_skill_network_scanner-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9432e3016d413eccc0fc360e64b0fc3f31175f7e4f341d42a0696114d0da6767
MD5 79a8ad9d33d86dc39e2c3f1b454f3384
BLAKE2b-256 0c3f62cfceca8fecbe46eef87c1e55900fe0209e66de2a6db1dc5b068e2395d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for ovos_skill_network_scanner-0.0.1-py3-none-any.whl:

Publisher: publish.yml on andlo/ovos-skill-network-scanner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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