1.3 KiB
1.3 KiB
nutils
Response
Every request returns 5 lines of plain text:
203.0.113.42
host-203-0-113-42.example.net
proxy=NO, type=UNKNOWN, tor=NO
North America, United States, Los Angeles
Example ISP / AS12345
| Line | Field | Meaning |
|---|---|---|
| 1 | IP | Client public IP (from X-Forwarded-For, X-Real-IP, or remote addr) |
| 2 | Reverse DNS | PTR record, or "Unknown" |
| 3 | Classification | Abuse flags |
| 4 | Location | Continent, country, city (GeoLite2-City) |
| 5 | ASN | Organization and ASN number (GeoLite2-ASN) |
Modes
ip (default) Returns both IPv4 and IPv6. Works as a catch-all.
ip4 IPv4 only. Rejects IPv6 clients with HTTP 400.
ip6 IPv6 only. Rejects IPv4 clients with HTTP 400.
Config
[server]
listen = ":8080"
[services.ip]
enabled = true
subdomains = ["ip.example.com"]
directories = ["/"]
[services.ip4]
enabled = true
subdomains = ["ip4.example.com"]
[services.ip6]
enabled = true
subdomains = ["ip6.example.com"]
[geo]
asn_db = "GeoLite2-ASN.mmdb"
city_db = "GeoLite2-City.mmdb"
download_url_asn = "https://git.io/GeoLite2-ASN.mmdb"
download_url_city = "https://git.io/GeoLite2-City.mmdb"
cache_dir = "data"
Services can be toggled on/off with enabled. MMDBs are downloaded automatically on first run and cached in cache_dir.