first commit
This commit is contained in:
commit
7181502a64
11 changed files with 770 additions and 0 deletions
61
doc.md
Normal file
61
doc.md
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
# 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
|
||||
|
||||
```toml
|
||||
[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`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue