English | 简体中文
A native macOS menu bar app that audits your network environment — public IP, proxy/VPN flags, DNS leaks, timezone consistency — and gives it a privacy score. The typical use case: checking how "clean" your network exit looks.
- Product name: 网连 (Netlink)
- Bundle ID:
com.netlink.app - Platform: macOS 13.0+, SwiftUI, App Sandbox + Hardened Runtime, outbound-only network access
- Category: Utilities (App Store product)
Get the latest .dmg from the Releases page (Universal, macOS 13.0+).
Development-signed and not notarized — on first launch right‑click the app → Open. See the release notes for details.
All IPs and locations shown are demo data.
| Smart Inspection | Public IP Info | Connectivity |
|---|---|---|
![]() |
![]() |
![]() |
The main window has 12 pages, grouped in the sidebar:
| Group | Page | Description |
|---|---|---|
| — | Smart Inspection | One-click full audit, aggregating all checks into a security score |
| Network Info | Local Network | Local interfaces, gateway, DNS, with live network-change monitoring |
| Public IP Info | Aggregates ipwho.is / ipapi.is / Cloudflare trace and cross-checks IP consistency | |
| Proxy Detection | Proxy flag detection and WebRTC real-IP leak probing | |
| IP Risk | proxycheck risk score, Tor exit node and open-proxy flags | |
| Checks & History | Connectivity | Reachability checks against popular services |
| IP History | Public IP change log | |
| Score History / Details | Every audit's score on record, with per-deduction breakdowns | |
| Environment | Timezone | System timezone vs. IP geolocation consistency |
| System / Hardware | System info and hardware snapshot |
System integration:
- Menu bar item: shows the live security score (color-coded); click behavior is configurable (open main window / run inspection).
- Notifications: public IP changed, proxy detected, timezone mismatch — each individually toggleable.
- Settings: UI language (System / 简体中文 / English, switches live), launch at login, menu bar click behavior, icon/score visibility, notification authorization guidance.
- App Store: under review; install directly once published.
- Build from source: requires macOS 13+ and Xcode — see "Build from source" below.
- On first launch, allow notifications (optional) for IP-change and proxy-detection alerts.
- On the Smart Inspection page, hit the Inspect button — a full audit completes in seconds with a score and a five-tier grade.
- Open Score Details next to the score card to see every deduction and how to fix it.
- Per-page refresh: each page's Refresh updates only that page and never touches the inspection score; the score only updates after a full inspection from the home page.
- Connectivity: "Check All" probes 10 popular sites concurrently for reachability and latency; individual sites can be retried. Results reflect reachability from your current network only.
- History: IP History keeps the latest entry per exit IP; Score History records every audit; both support clearing and JSON export.
- Menu bar: shows the icon and live color-coded score by default; click behavior, icon and score visibility are all configurable in Settings.
- Notifications: three independent toggles; when notifications are fully off or the menu bar icon is hidden, background polling pauses automatically to save traffic.
- Offline / flaky networks: checks rely on third-party public services (listed in the privacy policy); on failure the app keeps and labels the last successful result instead of blanking the UI.
The score uses a two-tier design:
- Fatal items cap the score: exit IP in a restricted region caps at 35, Tor exit at 40, public-info fetch failure at 45; multiple fatal items stack an extra penalty.
- Deductions accumulate: open proxy −12, multi-source IP mismatch −10, tiered proxycheck risk deductions, and more; total deductions cap at 60, floor score 15, mapped to five grades.
Additional signals: DNS leak detection (built-in known-DNS list) and IPv6 status.
Requires macOS 13+, Xcode, and XcodeGen:
xcodegen generate # regenerate the Xcode project after editing project.yml
xcodebuild -project CheckIP.xcodeproj -scheme CheckIP build
xcodebuild -project CheckIP.xcodeproj -scheme CheckIPTests testOr just open CheckIP.xcodeproj in Xcode and run.
Issues and PRs welcome — these are the open items:
- Stronger DNS leak detection: probe the real resolution chain instead of inferring from a static list; return a neutral verdict when all DNS servers are unknown
- Smarter timezone consistency: same-UTC-offset but different IANA names should warn, not deduct
- Align the "timezone mismatch" notification semantics: fire on an actual detected mismatch (currently fires on system timezone change)
- Persist polled prefetch results: no stale-snapshot rollback after an IP change and app restart
- Customizable connectivity check sites
- Score history trend chart


