Demo · Get started · Features · Changelog · Report an issue
iPScanner is a compact, native macOS tool for everyday IPv4 network discovery. Find responding devices, inspect names and services, add searchable labels, and save or export what you find. Built with SwiftUI; signed in-app updates are powered by Sparkle.
1.3.1 is available: Download the signed, notarized DMG. Fixes the v1.2.0 opening issue (#10). See the release notes for validation details and known platform limitations.
Watch the short tour: results → device details → export
An 11-second tour of actual app screens with a fictional saved snapshot. This is an interface walkthrough, not a live network scan.
Screenshot gallery and sample snapshot
| Task | In iPScanner |
|---|---|
| Discover devices | Enter an IP, CIDR, range or imported target list. Choose Quick, Standard or Deep. |
| Understand a result | Inspect DNS, MAC/vendor status, open ports, Bonjour services and device-type evidence. |
| Find it again | Add labels and #tags, search results, filter the table and save named networks. |
| Compare and share | Save a snapshot, compare changes, or export CSV, JSON, IP:Port and text reports. |
| Connect and troubleshoot | Open connection tools, check live ping, inspect service banners or send Wake-on-LAN. |
Light and dark appearances
| Light | Dark |
|---|---|
![]() |
![]() |
All device names, vendors and labels shown are sample data. View full-size images.
Download the latest DMG from Releases, drag iPScanner to Applications, then open it.
- Choose your network from the subnet menu or enter a target you administer.
- Leave the profile on Standard and select Scan. Stop cancels the run.
- Search the results or select a device and open Device Details (
⌘⌥I). - Add a label, save a snapshot or use Export above the results.
Options contains scan profiles and repeat intervals. Tools contains target import, the subnet calculator and port scans. AFP and Telnet live under Advanced. See all features or open Help → iPScanner Help in the app.
Download demo.ipscan.json using GitHub's Download raw file
button. In the app, use File → Open Scan… (⌘O) to load it. Search for #lab
to see tag filtering. Loading the snapshot does not start a discovery scan.
Opening details for the first row runs the ping monitor against localhost only.
- Automatic update checks: optional daily checks through Sparkle. Manual checks are available in Help and Settings.
- In-app installation: review release notes, download and install a signed update. Install the latest DMG manually once to receive future releases through Sparkle.
- Feedback: review your draft in the app before sending it through Cloudflare to a public GitHub issue. A GitHub account is not required to submit in-app.
A responding device is observable from your current network; a timeout does not prove a device is offline. MAC addresses may be unavailable across routers or because of OS privacy restrictions. Local/randomized MACs do not establish a manufacturer. Device types are estimates, with evidence in the details view. Sending a Wake-on-LAN packet does not confirm that a device woke up.
On macOS 27, MAC access may require additional signed capabilities and provisioning. This remains an open verification item.
The universal CLI is bundled at iPScanner.app/Contents/Helpers/ipscanner and uses
the same discovery engine and export models as the GUI.
# Quick check of this Mac's loopback address
/Applications/iPScanner.app/Contents/Helpers/ipscanner scan 127.0.0.1 --profile quick
# Scan your target file and write JSON
/Applications/iPScanner.app/Contents/Helpers/ipscanner scan \
--input targets.csv --profile standard --format json --output scan.jsonRun --help for all options. Exit codes: 0 success, 1 input error, 2 runtime error.
The old Contents/MacOS/ipscanner path has moved to avoid the filename collision in #10.
Requirements: macOS, Xcode with an SDK supporting the macOS 14.4 deployment target, and XcodeGen.
brew install xcodegen
git clone https://github.com/canberkys/iPScanner.git
cd iPScanner
xcodegen generate
open iPScanner.xcodeprojChoose the iPScanner scheme and run with ⌘R.
xcodebuild test -scheme iPScanner -destination 'platform=macOS' CODE_SIGN_IDENTITY=-
python3 scripts/build-vendor-db.py --check
(cd feedback-relay && npm test)The latest local validation passed 190 application tests and 6 Worker tests. See the acceptance table for tested methods and limitations; a universal build is not proof of testing on Intel hardware or every supported OS.
- No telemetry. Discovery runs on the targets you select.
- GitHub is contacted for update checks; feedback is sent only when you submit it. Scan results, IPs and MACs are not attached to feedback automatically.
- Vendor matching uses a compact offline IEEE index. Raw pinned sources and provenance notes are in data/ieee.
- Signed packaging validates GUI/CLI identity, architectures, notarization, stapling, DMG integrity and SHA-256. Signing guide.
Continue the remaining compatibility and accessibility checks. History, IPv6 and menu-bar mode are outside the current update. Follow-up work.
Changelog · 1.3.1 notes · Bug reports and feature requests · Website
Contributing · Support · Update distribution
MIT © Canberk Kılıçarslan — LICENSE. Vendor registry data: IEEE Standards Association.


