daimon3332/address

GitHub: daimon3332/address

一款支持 27 个国家和地区的自托管地址与合成测试档案生成器,基于真实开放地理数据生成结构化测试数据。

Stars: 340 | Forks: 79

Address logo

Address

一个支持 27 个国家和地区的自托管地址与合成测试档案生成器。

English · 简体中文 · 繁體中文

CI Release Node.js 24 MIT License Live Demo

Address 将真实的开放数据街道、行政区、坐标和邮政编码与清晰标记的合成室内细节相结合。它可以生成源语言、英语和简体中文的地址展示形式,以及用于表单和软件测试的连贯档案字段。 ## 🚀 工作流程 选择一个国家和位置 → 选择普通或有来源支持的居住模式 → 生成地址和测试档案 → 复制单个字段或导出结果。 ## ✨ 功能 - 涵盖 27 个国家和地区,支持按地区、城市和邮政编码进行筛选。 - 对于已同步的国家,采用精确 → 附近 → 同区域 → 全国范围的回退策略。 - 支持 IP 附近生成,并带有本地 SQLite RTree 回退机制。 - 以源语言、英语和简体中文呈现地址。 - 将基于来源的地址组件与标记过的合成室内字段分开。 - 生成连贯的基础档案、沙盒卡、就业、财务和网络字段。 - 提供 Google 坐标预览、地址搜索,以及中国的 AMap 链接。 - 热重载自定义黑名单,并保留证据/来源归属。 - 支持可恢复的初始导入、国家每日轮换、质量门禁和存储限制。 ## 🧭 地址来源与字段出处 默认的同步数据池为每个国家使用以下源系列。仅在启用了相应模式和凭证时才会使用实时提供者;它们不会取代默认的离线池。 | 国家 / 地区 | 默认来源 | 真实/有来源支持的地址字段 | 生成/合成的地址字段 | |---|---|---|---| | 美国 (US) | [Overture Maps](https://overturemaps.org/) | 门牌号、街道、城市、州、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会生成 `Apt`/房间 | | 加拿大 (CA) | [Overture Maps](https://overturemaps.org/) | 门牌号、街道、城市、省、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会生成 `Unit`/房间 | | 墨西哥 (MX) | [Overture Maps](https://overturemaps.org/) | 门牌号、街道、市镇、州、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 英国 (GB) | [Geofabrik OSM](https://download.geofabrik.de/) | 门牌号、街道、镇、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会生成 `Flat` | | 德国 (DE) | [Overture Maps](https://overturemaps.org/) | 门牌号、街道、城市、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 法国 (FR) | [Overture Maps](https://overturemaps.org/) | 门牌号、街道、城市、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 意大利 (IT) | [Overture Maps](https://overturemaps.org/) | 门牌号、街道、城市、大区、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 西班牙 (ES) | [Overture Maps](https://overturemaps.org/) | 门牌号、街道、城市、省、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 荷兰 (NL) | [Overture Maps](https://overturemaps.org/) | 门牌号、街道、城市、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 俄罗斯 (RU) | [Geofabrik OSM](https://download.geofabrik.de/) | 门牌号、街道、城市、联邦主体、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 中国 (CN) | [Geofabrik OSM](https://download.geofabrik.de/) | 省/直辖市、城市、区、道路、来源几何信息;可用时包含附近的具名 OSM 社区 | 门牌号;词库社区回退;缺失的楼栋/单元/房间细节 | | 香港 (HK) | [Geofabrik OSM](https://download.geofabrik.de/) | 建筑/街道、区、区域、来源几何信息 | 缺失的楼层/单元/房间细节可能会被生成 | | 台湾 (TW) | [Overture Maps](https://overturemaps.org/) | 门牌号、街道、市/县、区、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 日本 (JP) | [Overture Maps](https://overturemaps.org/) | 街区/门牌号、街道、市镇、都道府县、邮政编码、来源几何信息 | 普通记录无;缺失的公寓房间细节可能会被生成 | | 韩国 (KR) | [Geofabrik OSM](https://download.geofabrik.de/) | 道路、建筑号、区、市/道、邮政编码、来源几何信息 | 缺失的建筑/单元/房间细节可能会被生成 | | 新加坡 (SG) | [Geofabrik OSM](https://download.geofabrik.de/) | 门牌号、街道、地区、邮政编码、来源几何信息 | 缺失的公寓单元可能会被生成 | | 越南 (VN) | [Geofabrik OSM](https://download.geofabrik.de/) | 门牌号、街道、区、城市、省、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 泰国 (TH) | [Geofabrik OSM](https://download.geofabrik.de/) | 门牌号、街道、城市、省、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 菲律宾 (PH) | [Geofabrik OSM](https://download.geofabrik.de/) | 门牌号、街道、村/区、城市、大区、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 马来西亚 (MY) | [Geofabrik OSM](https://download.geofabrik.de/) | 门牌号、街道、区、城市、州、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 印度 (IN) | [Geofabrik OSM](https://download.geofabrik.de/) | 门牌号、街道、区、城市、邦、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 澳大利亚 (AU) | [Overture Maps](https://overturemaps.org/) | 门牌号、街道、郊区、州、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 土耳其 (TR) | [Geofabrik OSM](https://download.geofabrik.de/) | 门牌号、街道、城市、省、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 沙特阿拉伯 (SA) | [Geofabrik OSM](https://download.geofabrik.de/) | 门牌号、街道、城市、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 巴西 (BR) | [Geofabrik OSM](https://download.geofabrik.de/) | 门牌号、街道、城市、州、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 尼日利亚 (NG) | [Geofabrik OSM](https://download.geofabrik.de/) | 门牌号、街道、城市、州、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | | 南非 (ZA) | [Geofabrik OSM](https://download.geofabrik.de/) | 门牌号、街道、郊区、邮政编码、来源几何信息 | 普通记录无;缺失的公寓细节可能会被生成 | `None for ordinary records` 表示街道级别的地址字段并非虚构;当来源中没有官方单元时,公寓记录仍可能会获得一个合成的室内字段。 ### 真实与合成字段 | 字段 | 出处 | |---|---| | 国家、地区、城市、区和街道 | 从地址记录中提取并标准化;缺失的行政标签可能会从本地目录中填充。 | | 门牌号 | 对于非中国国家,受来源支持。中国特意将其替换为确定性的测试号码。 | | 邮政编码 | 可用时使用有效的来源邮政编码;无效或缺失的值可能会从最近的目录条目中填充。 | | 坐标 | 从来源几何信息中复制。根据来源不同,这可能是地址点、建筑点或 OSM way 的质心。 | | 建筑或社区 | 存在时使用来源值。对于中国,优先使用附近具名的 OSM 住宅社区;内置词库仅作为无覆盖时的回退。 | | 公寓、建筑、单元和房间 | 存在时保留官方/来源标记的值。对于中国以及其他国家的公寓记录,可能会生成缺失的室内细节。 | | 姓名、电话、电子邮件、就业、财务、网络和沙盒卡 | 合成测试数据。 | 因此,中国的含义是**真实的行政和道路背景加上来源坐标,带有合成的门牌号和可能的合成室内细节**。其他国家保留来源门牌号,但仍可能生成缺失的公寓/单元细节。`verified` 表示通过了来源证据和项目质量检查;这并不意味着该地址是当前的、有人居住的或可投递的。 ### Google Maps 和 AMap 行为 - **Google 坐标预览**会打开源自几何信息的 `纬度,经度`。它是一个位置预览,而不是 Google 可投递或入住证明。 - **Google 地址搜索**仅使用地址骨架。合成的中国门牌号、社区名称和室内单元会从该查询中排除;非中国搜索使用有来源支持的门牌号、街道、地区、区域和邮政编码。 - **AMap** 仅为中国生成。在打开 AMap 标记 URL 之前,会将来源的 WGS-84 坐标转换为 GCJ-02。 - 地图图钉可能代表地址点、建筑质心或 way 质心,而不是入口或房间。默认的生成路径并不声称 Google Geocoding 结果已经独立验证了每条记录。 有关详细的字段示例和来源说明,请参阅[地址格式](docs/address-formats.md)、[数据来源](docs/data-sources.md)和 [API 文档](docs/API.md)。 ## 🖼️ Webui 预览
查看完整的美国和中国 WebUI 预览
United States China
United States WebUI overview China WebUI overview
Generator Generator
United States generator controls China generator controls
Address Address
Generated United States address Generated China address
Basic profile Basic profile
United States basic test profile China basic test profile
Sandbox card Sandbox card
United States sandbox card data China sandbox card data
Employment Employment
United States employment data China employment data
Finance Finance
United States finance data China finance data
Network and extended fields Network and extended fields
United States network and extended data China network and extended data
Google Maps Google Maps
United States Google Maps preview China Google Maps preview
## 📚 文档 | 文档 | 内容 | |---|---| | [API 文档](docs/API.md) | 公共端点、参数、错误、同步管理、CORS 和示例 | | [部署文档](docs/DEPLOYMENT.md) | API 密钥、私有配置、VPS、Nginx、同步、备份和容量 | | [开发文档](docs/DEVELOPMENT.md) | 架构、本地设置、数据管道、扩展点、测试和发布门禁 | ## ⚡ 快速开始 需要 Node.js 24 或更高版本。 ``` git clone https://github.com/daimon3332/address.git cd address cp .env.example .env npm ci npm run db:migrate npm run dev ``` 新数据库仅包含 schema。运行 `npm run data:address-pool:bootstrap` 以执行可恢复的 27 国导入。在运行生产 VPS 之前,请参阅[部署指南](docs/DEPLOYMENT.md)。 ## 🔑 配置摘要 离线生成和数据同步不需要第三方 API 密钥。AMap、Geoapify、有道和 OneMap 凭证可启用可选的实时提供者功能;`SYNC_ADMIN_TOKEN` 用于保护 VPS 同步控制。请仅将真实值放入被忽略的 `.env`、`.deploy.env` 或 `/root/address/runtime/address.env` 文件中。切勿将凭证添加到源代码、浏览器代码、屏幕截图、issues 或 CI 日志中。 ## 💾 数据库大小 于 2026-07-23 在 commit `084805e` 同步所有 27 个国家后测量: | 项目 | 测量大小 | |---|---:| | `address.sqlite` | 6.90 GiB | | 完整的 `data/` 目录 | 7.89 GiB | | 初始导入峰值 | 约 11.2 GiB | 实际大小会因上游发布和 WAL 活动而异。建议为同步、备份和恢复空间提供至少 **60 GiB** 的生产应用存储卷。 ## 🌍 覆盖范围 美国加拿大、墨西哥、英国、德国、法国、意大利、西班牙、荷兰、俄罗斯、中国、香港、台湾、日本、韩国、新加坡、越南、
标签:GNU通用公共许可证, MITM代理, Node.js, SOC Prime, SQLite, 假数据, 开发工具, 数据生成器, 测试工具, 自动化攻击