The checks engine, the path and the cards: me-web? 0.1 reads the connection

MeWeb.Core runs seven checks concurrently and reports each as it settles:
online or behind a login page, this connection, the public IPv4 and IPv6
seen from v4./v6.meweb, the provider from a built-in map, the router
(UPnP IGD, NAT-PMP and PCP, read-only), address sharing (router WAN
against the echo, TTL hops only as a hint), and the history kept on the
device. The app draws the path from this device to the internet and lights
it node by node, with a card per check and a sheet listing every host it
contacts.

The provider map is iptoasn's table compressed to 2.1 MB by
tools/knowledge.cs and built before every app release; eleven Italian
provider profiles carry each fact with who said it, the source and the
month. The server gains a download page (en, it) and /download/{platform}
from the latest Gitea release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
This commit is contained in:
thepraandClaude Opus 5.5 committed 2026-10-15 04:39:03 +02:00
1 parent 16a1cecaae
commit 0dffbc27d6
61 files changed
+3750 -149

No files matched your search

+26 -14
View File
@@ -3,21 +3,25 @@
**Can you run your own server from here?** me-web? checks your connection and your device and tells you, in plain
words, what you could host at home, what stands in the way, and what would fix it.
> Status: early development (0.1). Nothing is released yet.
> Status: early development. Version 0.1 is the first release.
## What it checks
- whether you are online, or behind a login page;
- your public address, and whether your provider shares it with other customers (CGNAT) or puts more than one
router between you and the internet;
- whether your router lets an app open a port, and whether the outside world can actually reach you, over IPv4 and
IPv6;
- whether you can send mail directly, whether your address is on a residential blocklist, and what its reverse name
says;
- your DNS, your speed, and whether this device is a sensible server.
Version 0.1 checks, and draws as a path from this device to the internet:
Each check ends with what it means: a website at home, reaching home from outside, a mail server, a game server,
family photos and files — possible, possible with a workaround, or not possible from here.
- whether you are online, or behind a login page;
- how this device is connected, and the address your router gave it;
- your public IPv4 and IPv6 addresses, and which device holds them;
- your provider, found offline in a built-in map, with what is usual for it (shared IPv4, an address of your own,
IPv6, the mail port) and the source and date of each note;
- whether your router answers apps that ask it to open ports (UPnP, NAT-PMP, PCP), and which internet address it has;
- whether your provider shares your public IPv4 address with other customers (CGNAT) or there is a second router
in the way;
- how your public address has changed across your earlier checks.
Planned for later versions, not in 0.1: whether the outside world can actually reach you, over IPv4 and IPv6; the
kind of NAT; sending mail, residential blocklists and the reverse name; DNS; speed; whether this device is a sensible
server; and sharing your findings to improve the provider map.
## Platforms
@@ -25,9 +29,8 @@ Linux (deb, rpm), Windows, macOS and Android. Builds are published as releases o
## Privacy
me-web? sends nothing anywhere unless a check needs it, and lists every host it contacts. It has no telemetry. At
the end you can choose to share your findings to improve the next release's map of providers; you see exactly
what is sent first, and you can delete it afterwards.
me-web? sends nothing anywhere unless a check needs it, and lists every host it contacts ("What this app contacts"
in the app). It has no telemetry, no analytics and no crash reporting. Your checks are kept on your device only.
## Verifying the Android app
@@ -35,6 +38,15 @@ The APK is signed with the key whose certificate SHA-256 is
`5f:52:cf:f4:f5:2f:4e:0b:6d:a6:cd:04:4b:fc:ea:f7:8d:1d:42:db:24:f2:47:06:02:db:7f:19:cb:fd:f8:46`
(`apksigner verify --print-certs MeWeb-<version>-android.apk`). Every release also carries `SHA256SUMS.txt`.
## Credits
- Provider map: [iptoasn.com](https://iptoasn.com), Public Domain Dedication and License (PDDL 1.0), fetched for
every release; the release notes carry its date and SHA-256.
- Provider notes: each operator's own technical sheet (AGCOM 156/23 in Italy) and users' reports on
[FibraClick](https://forum.fibra.click), each cited in `data/isps/`.
- Icons: [Lucide](https://lucide.dev), ISC licence.
- Typeface: Inter, SIL Open Font License.
## Building
See `CLAUDE.md`. .NET 10, Avalonia 12.