跳到主要内容

从文本和日志里提取域名:整理访问清单与白名单的本地方法

用浏览器本地工具从混杂文本、URL 和日志里提取域名,剥掉协议和路径只留主机名,去重去子域,整理成可复核的访问清单或白名单,数据不外传。

发布于 作者 李雷
#域名提取 #提取域名 #白名单 #日志分析 #本地工具

从文本和日志里提取域名:整理访问清单与白名单的本地方法

运营和开发手里经常攒着一堆带域名的文本:统计后台导出的来源报告、邮件正文粘来的链接、Nginx 访问日志、客服工单、复制下来的网页。要做的事很简单,把里面的域名挑出来,整成一份干净清单。可真动手就发现没那么省事:有的带 https://,有的拖着一长串路径和查询参数,同一个站点又混着裸域和好几个子域,还夹着空格和重复行。手工一行行删,几百条就够人头疼一下午。

域名藏在哪些字段里

域名很少以纯净的形式出现。它通常被包在别的结构里:

  • 完整 URL:https://blog.example.com/posts/2026?ref=home,真正要的只是 blog.example.com
  • 访问日志行:一行里有 IP、时间戳、请求方法、状态码,域名只占其中一段。
  • 邮件和工单正文:链接和普通文字混在一起,中间还可能有全角标点。
  • CSV 导出:来源域所在的列两侧有逗号、引号,有时还带 www. 前缀。

把这些都当成一段文本扔进解析器,让它在上下文里识别每个主机名、丢掉周围无关内容,比写正则一个个抠要稳得多。

剥掉协议和路径,只留主机名

这是整个流程最关键的一步,也最容易被忽略。一条 URL 的结构是协议加主机名再加路径和查询串。提取域名,本质就是把首尾两头削掉,只留中间的主机名。

https://shop.example.co.uk:8080/cart/checkout?id=88#pay 来说,需要逐层处理:去掉前面的 https://,去掉端口 :8080,去掉路径 /cart/checkout,去掉查询串 ?id=88,也去掉锚点 #pay,最后剩下的 shop.example.co.uk 才是域名。如果只是粗暴地按斜杠切第一段,遇到没有协议头的 example.com/path 就会把整段当主机名,结果带上多余的路径。所以可靠的做法是按 URL 的语法逐部分剥离,而不是简单字符串截断。

一段真实文本的提取效果

下面这段是我从一份来源报告和几条日志里凑出来的混杂输入:

访客来自 https://blog.example.com/posts/welcome?utm=home
203.0.113.5 - - [13/Jun/2026] "GET http://cdn.example.com/app.js" 200
请加白名单:api.example.com 和 www.example.com
重复一次 https://blog.example.com/other
联系 mail to sales@partner.io

提取并去重后,输出是这样一份清单:

api.example.com
blog.example.com
cdn.example.com
partner.io
www.example.com

注意三个细节:两条 blog.example.com 合并成了一行;sales@partner.io 里的邮箱被识别出域名部分 partner.io;协议头和路径全部消失。这份结果可以直接复制进白名单配置,或者导出成 CSV 交给脚本。

去重、去子域和整理白名单

清单到手后,常见的整理动作有几种。最基础的是去重,网页复制来的文本常带隐藏空白,所以建议先规范化再去重,否则 example.comexample.com 会被当成两条。如果你要的是顶级注册域而不是每个子域,可以把 blog.example.comcdn.example.com 折叠回 example.com,这一步适合做粗粒度的流量来源统计。但做防火墙白名单时通常反过来,子域要逐条保留,因为放行 example.com 不等于放行它的每个子域。

整理白名单时我的习惯是保留行号和校验原因。像 exa mple.com 中间多了空格、只有 http:// 没有主机名、或者标签以连字符结尾这类无效行,不要直接丢,而是带出来复核,回头去改源数据。需要审计线索时,我会下载带行号的 CSV 或 Markdown,而不是只复制最终列表,这样别人接手能对回原文。

本地处理,源文本不出浏览器

日志和来源报告里往往带着客户数据、访问 token 或内部标识符,这类东西不该传到任何第三方服务器。我自己处理线上的 referrer 报告时,最在意的就是这点:解析、校验、去重、导出全在当前标签页完成,上传的文本文件也是通过浏览器本地读取,不发往服务器。处理完关掉标签页,什么都没留下,这种确定性比任何隐私承诺都让人踏实。

需要直接动手的话,可以打开 域名提取器,把文本或日志整段粘进去。如果你只是想把已有的一长串域名做合并去重,域名去重工具 会更直接。

把混乱的文本变成一份可复核、可交接的域名清单,靠的不是更快地手删,而是让协议剥离、去重和校验这些机械活儿一次跑完,你只负责确认结果。


Made by Toolora · Updated 2026-06-13