
supermasita/geoip-flask基于Python Flask框架和Maxmind GeoLite2数据库构建的IP地理位置查询服务,提供HTTP接口返回IP对应的城市等地理信息,支持直接访问和JSON格式API调用,适用于需获取IP地理信息的应用场景。
bashpython3 app.py
bashuwsgi --master --http 0.0.0.0:8888 --module app:app --processes 4
bashdocker pull supermasita/geoip-flask docker run -d --env GEOIP_APP_ENDPOINT=[***] -p 8888:8888 -t supermasita/geoip-flask
镜像内部UWSGI运行命令:
bash/usr/local/bin/uwsgi --master --http 0.0.0.0:8888 --chdir /opt/geoip-flask/ --module app:app --processes 4 --stats 0.0.0.0:9191 --stats-http
应用会检查X-Real-IP请求头以获取真实IP,若存在则优先使用该值。可通过环境变量GEOIP_APP_PROXY_IP_HEADER自定义此请求头。
[***][***][***][***]可通过以下环境变量覆盖config.py默认配置:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
GEOIP_DB_LOCATION | "GeoLite2-City/GeoLite2-City.mmdb" | GeoLite2数据库文件路径 |
GEOIP_APP_HOST | "0.0.0.0" | 服务绑定主机地址 |
GEOIP_APP_PORT | "8888" | 服务监听端口 |
GEOIP_APP_DEBUG | False | 是否启用调试模式 |
GEOIP_APP_ENDPOINT | "[***]" | 服务端点URL |
GEOIP_APP_TITLE | "A service for MaxMind's GeoIP DB using Flask" | 服务标题 |
GEOIP_APP_PROXY_IP_HEADER | "X-Real-IP" | 代理环境真实IP请求头 |
Docker运行时配置示例:
bashdocker run -e GEOIP_APP_ENDPOINT=[***] -e GEOIP_APP_PORT=8080 -p 8080:8080 supermasita/geoip-flask
目前无内置定期更新机制,如需更新数据库可:
Dockerfile)


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务