IP 地址正则表达式(IPv4 / IPv6)生成器与测试器
复制经过测试的 IPv4(0–255)、IPv4 CIDR、私有地址段以及压缩和 IPv4 映射的 IPv6 正则表达式,逐行测试,或从日志中提取所有 IP。
带前导零的段(010)会被拒绝:inet_aton、ping 和许多浏览器会把它们当作八进制,所以 010.0.0.1 表示 8.0.0.1。
| 行 | 值 | 结果 | 类型或原因 |
|---|---|---|---|
| 1 | 192.168.1.1 | 匹配 | IPv4 |
| 2 | 255.255.255.255 | 匹配 | IPv4 |
| 3 | 256.1.1.1 | 不匹配 | 256 大于 255 |
| 4 | 10.0.0 | 不匹配 | IPv4 地址有 4 段,而这里有 3 段 |
| 5 | 010.0.0.1 | 不匹配 | 前导零(常被当作八进制) |
| 6 | 2001:db8::1 | 不匹配 | 这是 IPv6 地址 |
| 7 | ::ffff:192.0.2.128 | 不匹配 | 这是 IPv6 地址 |
| 8 | fe80::1%eth0 | 不匹配 | 不允许区域索引(%…)— 请勾选相应选项 |
| 9 | 2001:db8:::1 | 不匹配 | 不允许出现 ":::" |
用正则表达式检查 IP 地址,在 999.1.1.1 漏过去、或 ::ffff:192.0.2.128 这样的压缩 IPv6 地址被拒绝之前,看起来都很简单。这个工具提供精确的表达式:每段限制在 0–255 的 IPv4、IPv4 CIDR 地址块、RFC 1918 私有地址段,以及各种合法写法的 IPv6,并附带 JavaScript、PHP、Python、Java 和 C# 的代码。你可以逐行测试并看到每个失败的原因,也可以从日志文件中提取所有地址。
使用方法
- 选择匹配内容:IPv4、CIDR、私有地址段、IPv6 或两者兼有。
- 决定是否允许前导零和 IPv6 区域索引。
- 选择语言,以及是校验值还是搜索文本。
- 粘贴测试值或日志,查看结果。
计算公式
IPv4 每段:25[0-5] | 2[0-4][0-9] | 1[0-9]{2} | [1-9]?[0-9] · IPv6:8 个 1–4 位十六进制的分组,缺省的零分组用一个 "::" 表示
IPv4 的每段表达式分别列出 250–255、200–249、100–199 和 0–99,所以 256 无法匹配。IPv6 表达式直接按 RFC 3986 的语法写成:针对 "::" 所处的每个位置各有一个分支,共九个,并允许最后 32 位使用 IPv4 结尾(RFC 4291)。私有地址段为 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16。搜索文本时,匹配结果不能紧挨着其他数字,所以 1.2.3.4.5 和版本号会被跳过,而句末的句号不影响。
示例
在示例列表中,192.168.1.1 和 255.255.255.255 匹配 IPv4 表达式。256.1.1.1 失败(256 大于 255),10.0.0 只有三段,010.0.0.1 有前导零,IPv6 的几行则不是 IPv4。切换到 IPv6 后,2001:db8::1 和 ::ffff:192.0.2.128 匹配,而 2001:db8:::1 因为不允许 ":::" 而失败。
常见问题
为什么拒绝 010.0.0.1?
许多 C 库、ping 和一些 URL 解析器会把带前导零的段当作八进制,010 就是 8。拒绝它们可以避免同一个地址被两种方式解读。如果你的数据确实使用补零的写法,请勾选该选项。
IPv6 表达式接受大写字母吗?
接受。两种大小写都是合法输入;RFC 5952 只是建议写成小写。
正则能判断一个地址是不是公网地址吗?
只能靠列出地址段,就像私有选项针对 RFC 1918 所做的那样。若要进一步判断(保留、文档用途或组播地址块等),请用库来解析地址。
资料来源
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/ip-regex-tool/
引用此工具
kakaoCalc. (2026, November 8). IP 地址正则表达式(IPv4 / IPv6)生成器与测试器. https://kakao.mobile/zh/tools/ip-regex-tool/
“IP 地址正则表达式(IPv4 / IPv6)生成器与测试器.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/ip-regex-tool/.