nossl.sh is an open project to build and publish a free, accurate Geo IP database from open sources and to help people connect with better network transparency. This repo contains the database build tooling plus a lightweight web service that shows your connection details and offers fast Geo IP lookups.
The service is always HTTP-only (no TLS, no HTTPS). That makes it reliable for captive portals and Wi-Fi onboarding flows where HTTPS can fail or be blocked.
- Build an open, free, and accurate Geo IP database from publicly available data.
- Make the data easy to use for everyone, including simple curl-friendly APIs.
- Invite the community to improve accuracy with feedback and better sources.
We publish our own Geo IP databases (MMDB) built from IP allocation data and carefully curated geofeed inputs. The public landing page and download details live at:
The build pipeline lives in infra/ and includes the MMDB builder plus scripts
that assemble allocation and geofeed inputs.
We primarily rely on open IP allocation data and geofeed metadata. Key upstream sources include:
- NRO/RIR delegated stats (AFRINIC, APNIC, ARIN, LACNIC, RIPE NCC)
- Public geofeeds from network operators
- Public ASN name lists and registries
Accuracy improves with real-world feedback. Please share:
- Data corrections (bad locations, wrong ASN/org, missing prefixes)
- New or better open data sources
- Ideas to improve the database build or the lookup service
Open an issue or a PR with details, or point us to reliable sources we can add.
- The lookup page:
/free-geo-ip - API lookup:
/api/ip?1.1.1.1 - Request diagnostics JSON:
/api/request-info
Examples:
curl http://nossl.sh/api/ip?8.8.8.8
curl http://nossl.sh/api/request-infoThe main diagnostics page (/) shows your IP, headers, and connection status.
npm install
npm run devThen open http://localhost:8080.
To run without live reloading:
npm startCommon environment variables:
PORT,LISTEN_ADDRESSGEOIP_DB_PATH(Geo IP MMDB)ASNIP_DB_PATH(ASN MMDB)ASN_INFO_DB_PATH(ASN info SQLite)REDIS_URL(shared reports and beacons)SQLDB(honeypot/counters SQLite)MAX_HONEYPOT(max unique honeypot IP rows, default1024)MAX_IP_RECORDS(max unique IP rows per tracked API endpoint, default100000)