震惊!最真实的美国免税州地址生成器已经开源了

0 阅读12分钟

我为什么要做这个网站

因为工作原因,有时候。我需要一些 美国免税州数据 和 美国地址 还有其它地区的地址数据,比如日本和香港英文和中文的地址,还有印度地址,日本地址,德国地址,新加坡地址等。用来测试外贸网站的税务计算系统,检查在突然有大量用户订单涌入的时候,是否会产生崩溃或者计算错误的BUG。一开始总是用google和bing搜索出来的那种fake地址生成工具网站。但是因为他们的地址有的实在太假了。会经常被我们的商城税务系统当做恶意订单给拒绝掉。

后来。我就想到,现在AI这么强大,我完全可以通过根据github的开源项目,自己和AI一起完成一个地址真实的生成器(逻辑和邮编都真实那种,而不是那种纯随机的假地址,那种假到除了字数是对,其它的都是错的那种垃圾地址生成器),但是。当自己去GItHub找项目后,才发现基本上所有的开源地址生成器项目,也都是fake数据,假到让我想撞墙。 如果我按这些项目去开发的话,那和用别人网站的生成数据有什么区别?所以,我一狠心就自己找那些已经开源的数据,用来填充到自己的地址数据库里。

  • 第一步:下载OpenStreetMap + USPS等数据(包括其它国家的地址数据)。来让AI整理并填写到JSON里面。
  • 第二步:让AI整理并剔除掉那些公开数据里的住宅地址。
  • 第二步:批量生成地址数据,然后通过收费的地图软件API,批量反复的验证。确保在地图可以搜索的到这个地址。

果然外贸税务系统在测试的时候,再也没有出现报错和拒绝订单的问题了。

mianshuizhoudizhi.webp

shifozhenshi.webp

不过,用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给起的。我一直懒得改)代码就是下面的这个,复制即用。:
@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地址生成器