# Retrive GEOIP credentials from `maxmind.com` and set variables
export GEOIP_ACCOUNTID="AccountID"
export GEOIP_LICENSEKEY="LicenseKey"
export GEOIP_EDITIONID="GeoLite2-Country" # "GeoLite2-Country" or "GeoIP2-Country"
# start docker container
docker run -d -v /tmp/geoip/:/usr/share/geoip/ -e GEOIP_ACCOUNTID=$GEOIP_ACCOUNTID -e GEOIP_LICENSEKEY=$GEOIP_LICENSEKEY -e GEOIP_EDITIONID=$GEOIP_EDITIONID --name geo-checker -p 8080:80 ymuski/geo-checker:latest
# interactive mode
docker run --rm -it -v ${PWD}/tmp/geoip/:/usr/share/geoip/ -e GEOIP_ACCOUNTID=$GEOIP_ACCOUNTID -e GEOIP_LICENSEKEY=$GEOIP_LICENSEKEY -e GEOIP_EDITIONID=$GEOIP_EDITIONID --name geo-checker -p 8080:80 ymuski/geo-checker
# test with any public IP
# Header priority: 1. X-Custom-Real-Ip (Highest) 2. X-Real-Ip 3. CF-Connecting-IP
curl localhost:8080 -H "X-Custom-Real-Ip: 1.1.1.1"
curl localhost:8080 -H "X-Real-Ip: 1.1.1.1"
curl localhost:8080 -H "CF-Connecting-IP: 1.1.1.1"
curl localhost:8080/ip/1.1.1.1
# Body
{"IP":"1.1.1.1","iso2Code":"AU","name":"Australia"}
# Responce headers
X-Real-IP: 1.1.1.1
X-Geo-Country-Code: AU
X-Geo-Country-Name: Australia
docker build -t ymuski/geo-checker .
docker pull ymuski/geo-checker
nginx as reverse-proxy:location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:8080;
}
Cloudflare + nginx as reverse-proxy:location / {
proxy_pass http://127.0.0.1:8080;
}
Content type
Image
Digest
sha256:7c2f94487…
Size
87.5 MB
Last updated
9 months ago
docker pull ymuski/geo-checker