ZH
我的工具

IP 地址正则表达式(IPv4 / IPv6)生成器与测试器

复制经过测试的 IPv4(0–255)、IPv4 CIDR、私有地址段以及压缩和 IPv4 映射的 IPv6 正则表达式,逐行测试,或从日志中提取所有 IP。

默认关闭。许多程序会把 010 当作八进制的 8。
正则表达式
JavaScript
代码
匹配数
2
不匹配
7

带前导零的段(010)会被拒绝:inet_aton、ping 和许多浏览器会把它们当作八进制,所以 010.0.0.1 表示 8.0.0.1。

测试结果
行值结果类型或原因
1192.168.1.1匹配IPv4
2255.255.255.255匹配IPv4
3256.1.1.1不匹配256 大于 255
410.0.0不匹配IPv4 地址有 4 段,而这里有 3 段
5010.0.0.1不匹配前导零(常被当作八进制)
62001:db8::1不匹配这是 IPv6 地址
7::ffff:192.0.2.128不匹配这是 IPv6 地址
8fe80::1%eth0不匹配不允许区域索引(%…)— 请勾选相应选项
92001: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# 的代码。你可以逐行测试并看到每个失败的原因,也可以从日志文件中提取所有地址。

使用方法

  1. 选择匹配内容:IPv4、CIDR、私有地址段、IPv6 或两者兼有。
  2. 决定是否允许前导零和 IPv6 区域索引。
  3. 选择语言,以及是校验值还是搜索文本。
  4. 粘贴测试值或日志,查看结果。

计算公式

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 所做的那样。若要进一步判断(保留、文档用途或组播地址块等),请用库来解析地址。

资料来源

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). IP 地址正则表达式(IPv4 / IPv6)生成器与测试器. https://kakao.mobile/zh/tools/ip-regex-tool/

MLA

“IP 地址正则表达式(IPv4 / IPv6)生成器与测试器.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/ip-regex-tool/.

广告