A clean, professional network scanner and toolkit for iOS, built with SwiftUI, SwiftData, and iOS 26's Liquid Glass design language.
Netsight discovers the devices on your local network, identifies what they are, maps the topology, and gives you a toolkit of real networking utilities — ping, port scanning, DNS lookup, traceroute, Wake-on-LAN, and more — all wrapped in an Apple-quality, first-party-feeling UI.
- Scan — discover every device on your LAN with a live results feed. Smart device identification via Bonjour/mDNS, SSDP/UPnP, hostname analysis, port fingerprinting, and MAC OUI lookup when iOS exposes a MAC address.
- Map — an interactive, deterministic network topology graph rendered with glass nodes.
- Tools — ping, port scanner, DNS lookup, traceroute, Wake-on-LAN, "Who's on my WiFi", and a speed test.
- Devices — a persistent inventory of every device ever discovered, searchable and filterable with native menu selectors, backed by SwiftData.
- Detail — per-device deep dive with quick actions (ping, open web UI, SSH, camera, WoL), open-port listing, notes, and custom naming.
- Xcode 26+ and the iOS 26 SDK (uses the native
.glassEffect()Liquid Glass APIs). - A physical device for full network scanning (Bonjour, SSDP, and TCP scanning are limited in the Simulator).
The Xcode project is generated from project.yml via XcodeGen:
brew install xcodegen # if needed
xcodegen generate
open Netsight.xcodeprojOr from the command line:
xcodebuild build -scheme Netsight \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro'Netsight/Models—NetworkDevice,DeviceType,PortResult, SwiftData models.Netsight/Services—NetworkScanner,DeviceIdentifier,PaywallManager.Netsight/Networking— low-level Network-framework scanning primitives.Netsight/Views— SwiftUI views, organized by feature (Scanner, Visualization, Tools, Detail, Special, Components).Netsight/Utilities— design system, haptics, OUI lookup, networking helpers.
iOS restricts raw ICMP sockets, so ping is implemented as a TCP connect probe. Full SSH (PTY + ANSI) and VLCKit-based RTSP playback are noted as v2 follow-ups; native fallbacks (TCP command channel, AVPlayer/MJPEG) are used where Apple frameworks allow.
iOS does not expose the kernel ARP table to sandboxed third-party apps, so Netsight cannot
reliably retrieve MAC addresses or OUI manufacturers for other devices on the LAN. Device
identity uses macAddress ?? ipAddress: the MAC is preferred when available, and IP address
fallback is expected for most remote hosts on iOS. The current iPhone's own interface MAC is
shown when getifaddrs exposes it.
iOS also gates Wi-Fi SSID access behind the Access WiFi Information entitlement
(com.apple.developer.networking.wifi-info) and location permission. Netsight ships the
entitlement and requests when-in-use location before reading the current network name; if
the device is on Wi-Fi but iOS still withholds the SSID, the app shows "Unknown Network"
instead of treating it as disconnected. When NEHotspotNetwork also provides a BSSID,
Netsight shows it as the connected access point and labels a matching scanned device when
its MAC address is available.