
如何让生成的地址靠近用户所在地点Address IP定位生成模式实战指南【免费下载链接】addressA self-hosted address and synthetic test-profile generator for 27 countries and regions, built from real open-data streets, administrative areas, coordinates, and postcodes. Supports multilingual output, IP-nearby generation, map previews, and API access. 基于真实开放数据的自托管地址与合成测试资料生成器覆盖 27 个国家和地区支持多语言地址、IP 附近生成、地图预览与 API 调用项目地址: https://gitcode.com/gh_mirrors/address4/addressAddress 地址生成器支持 IP 定位生成模式modeip-region它自动识别调用方的 IP 位置从真实开放数据街道中生成靠近用户所在城市的地址覆盖 27 个国家与地区并附赠合成测试资料非常适合做本地化测试与模拟下单场景。IP定位生成模式是什么普通生成模式下你需要手动指定country、city等参数而IP 定位生成模式只认一件事调用者在哪地址就在哪。它的工作链路非常直观识别 IP—— 服务器读取请求来源 IP反向代理下读取X-Forwarded-For等转发头解析位置—— 调用 IP 地理定位服务得到国家、州/省、城市、邮编与经纬度就近选取—— 优先按坐标找数据库中最近的已发布地址找不到则回退到城市级匹配返回结果—— 响应中带ipMatchLevelcoordinate / city与distanceKm距离 IP 的公里数让你清楚知道地址有多近。 IP 模式下只要求匹配到城市及以上精度。如果该城市没有同步过地址数据API 会直接返回IP_REGION_NO_RESULT而不是悄悄给你一个全国随便挑的地址——这种宁缺毋滥对测试的可信度非常重要。三种调用方式一键上手所有请求都需要在管理后台API Tokens页面创建令牌并带上Authorization: Bearer YOUR_API_TOKEN请求头。方式一不传 IP自动使用调用方 IP最省事浏览器或后端直接请求服务器自己定位curl -fsS https://address.example.com/api/v1/generate?modeip-region \ -H Authorization: Bearer YOUR_API_TOKEN方式二手动指定目标 IP适合测试任意城市通过ip参数模拟其他位置无需真的换网络curl -fsS https://address.example.com/api/v1/generate?modeip-regionip8.8.8.8 \ -H Authorization: Bearer YOUR_API_TOKEN方式三先查 IP 位置再生成GET /client-context可先确认某个 IP 被解析到了哪里国家、区域、城市、邮编、坐标再生成前做好预期curl -fsS https://address.example.com/api/v1/client-context?ip8.8.8.8 \ -H Authorization: Bearer YOUR_API_TOKEN三种方式对应的源码分别在 server/api/index.tsclient-context 端点与 server/api/index.tsip-region 模式入口IP 数据库的解析与双服务商容错逻辑在 server/api/services/ip-geolocation.ts。响应字段解读一眼看懂匹配质量ip-region模式响应中值得关注这几个字段字段含义mode固定为ip-regionipMatchLevelcoordinate坐标级就近或city城市级ipRegion.distanceKm选中地址与 IP 坐标的距离公里ipRegion.targetRegion/targetCity实际落点的州/省与城市address.formattedAddress完整地址含真实坐标如果返回 400 且error.code为IP_LOCATION_UNAVAILABLE说明该 IP 无法解析到受支持的国家返回IP_REGION_NO_RESULT则表示该城市还没有同步过地址池稍后重试或换城市即可。错误码全表见 docs/API.zh-CN.md。反向代理部署必做让 Address 看到真实客户端 IP生产环境通常架在 Nginx / Caddy 等反向代理之后此时服务器只能看到代理自身的 IP。要让 IP 定位生效需要在部署配置中设置TRUST_PROXYtrue服务器才会信任Forwarded、X-Forwarded-For、X-Real-Ip请求头中的客户端地址相关判断逻辑见 server/api/services/client-context.ts。⚠️ 只在确定上游代理可信时才开启该选项否则客户端可伪造 IP 头来指定自己的位置。常见问题速查Q为什么同一个 IP 有时是 coordinate 匹配有时是 city 匹配IP 数据库不一定总能给出经纬度。有坐标时走最近地址检索见 server/api/repositories/address-pool-v2.ts无坐标时按 IP 解析出的城市精确匹配二者都是可信结果。Qip-region 模式能和city、postcode参数一起用吗不能。IP 模式下位置参数被刻意忽略避免IP 在 A 城、参数指定 B 城的矛盾请求位置只由 IP 决定。Q如何复现某次生成的结果加seed参数。同一个 seed 在同一数据版本下会选中同一条记录与同一份合成资料方便回归测试与问题排查。Q数据从哪里来所有地址来自真实开放数据街道OpenAddresses、各国官方地理数据源等经同步管道入库字段与证据链说明见 docs/data-sources.md部署与运行方式见 docs/DEPLOYMENT.zh-CN.md。小结Address 的 IP 定位生成模式把生成地址和用户位置绑在了一起三个参数级别的配置就能得到带坐标、带距离、可复现的本地化测试地址。配合批量接口POST /generate/batch与多语言地址翻译一套即可支撑完整的地址测试流水线。【免费下载链接】addressA self-hosted address and synthetic test-profile generator for 27 countries and regions, built from real open-data streets, administrative areas, coordinates, and postcodes. Supports multilingual output, IP-nearby generation, map previews, and API access. 基于真实开放数据的自托管地址与合成测试资料生成器覆盖 27 个国家和地区支持多语言地址、IP 附近生成、地图预览与 API 调用项目地址: https://gitcode.com/gh_mirrors/address4/address创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考