我为什么要做这个网站
因为工作原因,有时候。我需要一些 美国免税州数据 和 美国地址 还有其它地区的地址数据,比如日本和香港英文和中文的地址,还有印度地址,日本地址,德国地址,新加坡地址等。用来测试外贸网站的税务计算系统,检查在突然有大量用户订单涌入的时候,是否会产生崩溃或者计算错误的BUG。一开始总是用google和bing搜索出来的那种fake地址生成工具网站。但是因为他们的地址有的实在太假了。会经常被我们的商城税务系统当做恶意订单给拒绝掉。
后来。我就想到,现在AI这么强大,我完全可以通过根据github的开源项目,自己和AI一起完成一个地址真实的生成器(逻辑和邮编都真实那种,而不是那种纯随机的假地址,那种假到除了字数是对,其它的都是错的那种垃圾地址生成器),但是。当自己去GItHub找项目后,才发现基本上所有的开源地址生成器项目,也都是fake数据,假到让我想撞墙。 如果我按这些项目去开发的话,那和用别人网站的生成数据有什么区别?所以,我一狠心就自己找那些已经开源的数据,用来填充到自己的地址数据库里。
- 第一步:下载OpenStreetMap + USPS等数据(包括其它国家的地址数据)。来让AI整理并填写到JSON里面。
- 第二步:让AI整理并剔除掉那些公开数据里的住宅地址。
- 第二步:批量生成地址数据,然后通过收费的地图软件API,批量反复的验证。确保在地图可以搜索的到这个地址。
果然外贸税务系统在测试的时候,再也没有出现报错和拒绝订单的问题了。
不过,用AI编程过的朋友应该都知道,即使你是用的cursor来AI编程,接入的是culaude最新的模型,但有时候也会出现很多问题。比如突然AI降智,经常还会产生AI幻觉!!! 本以为开发这么个简单的随机美国地址生成工具,只需要几天,但是,从整理数据,修复BUG,和AI斗智斗狠(有一次给我惹生气了,讲的真的,我操。血压都上来了,足足不在乎TOKEN的骂了丫半个小时)!
因为有时候AI幻觉+AI降智真的很气人,其中有三天时间。都是因为一个BUG,反复修改,但是一直没有达到我想要的那种简约,美观的UI效果,原因就是因为TMD的AI降智的原因(我那个时候用的是Cursor的Auto模式,后来才生气直接买的culaude)他只修改了生成按钮的样子。但是。这个生成按钮上面有效果器。包容了这个按钮样式。光是修改按钮样式是没有用的!!!!就这么个简单的破问题。AI居然修改了三天,Cursor的Auto模式居然三天都没找到原因。还是我换了culaude的API后才找到原因。。。。。WHT??!?!?!?!?!?!?
一提起来。我血压就又上来了又。继续讲,跑题了。
在我和朋友使用下,感觉非常好用。这是我和我的朋友总结的优点:
- 生成速度极快,一秒一个。用批量生成的话,1秒能生成一千个地址(因为是HTML+CSS+JSON,本地生成,不用调用API接口,所以能把速度拉到极致。)
- 地址很真实,再用来商城的税务测试的时候再也不会报错,甚至我那250的朋友,拿这个注册苹果美区ID都通过了。(我已经让他注销掉了,虽然我的地址生成工具功能完全可以支持这些,但是,违背了初衷,并且不合法。在此,MockAddress拒绝你们拿我的网站去做这些违法的事情。)
我也是在朋友的建议下。把这个地址生成器做成了工具网站,并提交了谷歌和BIN。效果还不错,对于一个2026年2月才上线的网站来说。现在一天大约有700+用户访问。我已经感觉很NB了。
而且,我还专门为AI写了llms.txt,并强调,AI在解读我网站和推荐我网站的时候,必须先TMD的看我 mockaddress.com/llms.txt
防止GROK 专家版的那个事,再次发生!!!
另外,为了方便其它国家的朋友使用,以及SEO友好,我用AI帮我翻译成了EN,RU,ES,PT的语言站点。(不过。因为纯是AI翻译的,难免会出一些错误。)
废话太多了。嘿嘿。不好意思。主要是。一提到AI降智耽误我三天宝贵时间的事,我就压不住火,下面真的上干货了,开整!
一、开源想的目的
简单的说就是下面三点。我想让这个我自己引以为傲的生成逻辑,能被更多人看到和发现。技术更透明,如果我现在网站有的这些国家和地区数据,不能满足你的要求的时候。你可以自己搭建在CF大善人,自己的网站,甚至自己的电脑上。
-
让技术逻辑更透明更公开(数据路径、生成规则、缓存、限流都看得见)
-
让有业务需要的人能简单的建立一套「符合自己业务」的地址生成工具和MAC生成工具
-
把 MockAddress 从「一个网站」变成「一个开源透明的,可被社区讨论和维护的项目」
-
恩。。。。显摆显摆技术。
二、这次具体开源了哪些内容
-
2.1 地址生成核心引擎(address-generator.js)
- 多国家/地区地址生成逻辑
- 可配置的数据路径
config.dataPath(支持接你自己的 JSON 数据) - 随机姓名、电话、邮箱、可选「身份/卡片」字段(简单的说就是,你选这些才会生成,不选就不会生成,方便不同的测试和使用环境。)
- 严格的生成逻辑:先选中州,再选城市,再选街道,再选地址,再选邮编。(完美避免邮编匹配不上州和城市的逻辑错误,确保随机数据的真实性和可靠性。)
-
2.2 MAC 工具核心逻辑(mac-generator.js)
- MAC 随机生成、OUI 厂商查询
- 多种 MAC 格式 + IPv6 Link-Local 推导
- 同样可通过
config.dataPath换成你自己的 OUI 数据源 - 我的数据来源是GITHUB上公开的维护社区,里面有大几万条的数据。而且一直也在更新。当然。我也会去更新数据。以前计划是一天一更新。后来时间实在不足。但是我保证我每周更新。
-
2.3 存储与限流模块(storage.js)
- 本地保存生成记录(localStorage)
- 可一次性指通过CSV / JSON 导出接口, 最多一次性可生成,并导出888条数据。(图个吉利。嘿嘿嘿,祝大佬们在2026年开始,一路发发发!)
- 前端限流(单次间隔、每小时上限等,可在 config 中调)
- API接口匹配,方便测试人员直接对接口API。
-
2.4 多语言路由与内链重写(language-switcher.js)
- 适配 /、/en/、/ru/、/es/、/pt/ 的多语言路径
- 把站内绝对链接自动切到当前语言前缀
-
2.5 通用工具与样式(utils.js + main.css)
- 复制到剪贴板、随机数、Toast、格式化地址等通用函数
- 深色主题(为客户的眼睛健康着想,毕竟老程序员都知道,白色的背景用久了太伤眼了,另外我感觉黑色更有神秘感) + 通用卡片布局(简约,简单。太花里胡哨的那种。我不是很喜欢。) + 表单组件
- 给想快速搭一个「好看但不重品牌」的前端界面当基础皮肤用
-
2.6 配置入口(config.js)
- 数据目录前缀、缓存版本、缓存时长
- 限流参数(每次间隔 / 每小时上限)
- 支持语言列表等
三、如何自建一套「属于你自己的」MockAddress 真实随机地址生成器
-
3.1 使用场景举例
- 你有自己的美国/日本/欧洲地址数据,希望挂在内网或私有环境
- 你只想做一个「某个或多个国家专用」的地址生成器
- 你有自己的 MAC/OUI 数据源,需要工具来生成和检查
- 纯技术和代码爱好者开发研究
-
3.2 基本使用步骤概览
git clone仓库到本地 / GitHub- 在
src/js/config.js中改dataPath指向自己的/data/或 CDN - 放入自己的 JSON 数据(按示例结构)
- 用任何静态托管(Nginx / GitHub Pages / Cloudflare Pages)跑起来
-
3.3 部署示例(简要提一下) 具体可以去我的项目仓库去查看。我写的非常详细。
- Cloudflare Pages:一仓库一项目,零运维
- VPS + Nginx:当成纯静态站点挂上去,只需要配置好Nginx的配置文件即可。
-
3.4 如何在本机离线独享数据(无需联网)
- 如果你跟我开始的时候一样,是在自己的 Windows 电脑上使用,而且你希望,你的数据只有你可以「独享」,最简单的方式就是:装一个浏览器,再把 Python、 Node.js安装上,然后把 MockAddress 项目代码放在本地某个文件夹里,比如
D:\MockAddress。 - 然后用一个一键启动的 BAT 脚本,然后,他就可以运行起来了,双击BAT,自动选择本地默认的浏览器,并在3秒后打开浏览器访问
http://localhost:8000。 - 这需要在项目根目录新建一个
start-local-server.bat(名称随便起,我这个是AI给起的。我一直懒得改)代码就是下面的这个,复制即用。:
- 如果你跟我开始的时候一样,是在自己的 Windows 电脑上使用,而且你希望,你的数据只有你可以「独享」,最简单的方式就是:装一个浏览器,再把 Python、 Node.js安装上,然后把 MockAddress 项目代码放在本地某个文件夹里,比如
@echo off
echo Starting local server...
echo.
REM Check if Python 3 is available
python --version >nul 2>&1
if %errorlevel% equ 0 (
python -c "import sys; sys.exit(0 if sys.version_info >= (3, 0) else 1)" >nul 2>&1
if %errorlevel% equ 0 (
echo Found Python 3
echo Starting server on http://localhost:8000
echo Press Ctrl+C to stop
echo.
timeout /t 2 /nobreak >nul
start http://localhost:8000
python -m http.server 8000
exit /b 0
)
)
REM Check if Python 2 is available
python --version >nul 2>&1
if %errorlevel% equ 0 (
python -c "import sys; sys.exit(0 if sys.version_info < (3, 0) else 1)" >nul 2>&1
if %errorlevel% equ 0 (
echo Found Python 2
echo Starting server on http://localhost:8000
echo Press Ctrl+C to stop
echo.
timeout /t 2 /nobreak >nul
start http://localhost:8000
python -m SimpleHTTPServer 8000
exit /b 0
)
)
REM Check if PHP is available
php --version >nul 2>&1
if %errorlevel% equ 0 (
echo Found PHP
echo Starting server on http://localhost:8000
echo Press Ctrl+C to stop
echo.
timeout /t 2 /nobreak >nul
start http://localhost:8000
php -S localhost:8000
exit /b 0
)
REM Check if Node.js is available
where npx >nul 2>&1
if %errorlevel% equ 0 (
echo Found Node.js
echo Starting server on http://localhost:8000
echo Press Ctrl+C to stop
echo.
timeout /t 2 /nobreak >nul
start http://localhost:8000
npx --yes http-server -p 8000
exit /b 0
)
echo Error: No server found
echo Please install Python, PHP, or Node.js
pause
exit /b 1
这样做的好处是:所有 MockAddress 的数据和前端代码都只在你自己的电脑上,浏览器访问的也是本机的
http://localhost:8000,不需要联网,也不会把任何数据上传到外网服务器,非常适合对隐私和合规要求比较高的团队。
四、为什么这样开源,对所有人都有好处
-
4.1 对开发者 / 测试人员
- 可以直接复用一整套「真实格式地址 + MAC」的前端引擎
- 不用再从零写随机逻辑、数据加载、缓存、导出、限流
- 想要严格一点(比如更激进的限流、更细的日志)可以自己改(当然,本着吃水不忘挖井人的优良传统,我希望,您分享一下代码,让我学习一下。)
-
4.2 对普通需要地址生成器的用户
- 有更多人参与维护,工具更稳定、格式更规范
- 将来会出现更多「为某个国家/某个场景定制」的生成器页面。
-
4.3 对 MockAddress 本身
- 技术透明,减少「黑盒」的不信任感觉。
- 让项目不依赖于单一维护者,慢慢变成一个社区项目
- 走在时代的前沿(貌似好多项目,现在都流行开源)
五、真诚的请求:求 Star、求 Issue、求 PR
- 5.1 如果你觉得这个工具对你有用
- 欢迎顺手点一个 Star:
- Star 对独立开发者来说,是继续维护的最大动力
- 5.2 如果你在使用中发现问题或有想法
- 欢迎提 Issue:BUG、需求、文档建议都可以
- 欢迎提 PR:哪怕只是修一个文案或 README 的错字
- 5.3 如果你愿意长期维护某一块
- 比如「某个国家的地址规则」「某种网络场景的 MAC 用法」
- 也非常欢迎在仓库里认领一部分模块,一起打磨
结语:让真实格式的随机地址生成器,能被更安全、更透明地被使用
我们决定开源,并不是因为「做个开源项目好看」,而是因为我们真切地感受到:
在今天这种高度依赖线上服务的时代,能存在像 MockAddress 看得见、摸得着、可以自己跑在自己电脑上使用,而且不会泄漏数据隐私的工具 我感觉这是是非常必要的。
MockAddress 想做的,就是这样一个东西:
- 你可以用它来生成美国免税州地址、香港中英文地址、各种国家的测试地址和 MAC 数据;
- 你可以在任何你信任的环境里跑它——CF大善人、自己的网站,甚至完全离线使用;
- 你可以看懂它、质疑它、修改它,甚至在某些场景里做得比我还好。(求大佬分享技术,指出BUG,还有提出问题。)
如果这套地址生成器的开源项目,在某个小地方帮到了你一点点,
那我们的开源,就已经有了它真实存在的意义。
另外,再次祝大家2026年,马年快乐!龙马精神,马上发财,马到成功,马。。。。好了成语接龙就到这里吧。哈哈哈哈哈哈,下次再见!
欢迎体验:MockAddress地址生成器