IPv6 地址过滤行为异常

IPv6 Address filtering behaving unusually

我正在使用节点 js,特别是这个包 cidr-matcher 与速率限制器结合使用,以便将某些 IP 排除在速率限制之外。

具体要排除的一个 CIDR 表达式是:

::ffff:25.0.0.0/112

决定是否排除的代码粗略是:

  import Matcher from "cidr-matcher";
  ...

  public shouldRateLimitIp(ipAddress: IpAddress): boolean {
    const excludedIpsMatcher = new Matcher(["::ffff:25.0.0.0/112"]);
    return !excludedIpsMatcher.contains(ipAddress);
  }

但是,我看到 ::ffff:25.0.31.1 的 IP 地址被正确排除,而 ::ffff:25.0.1.1 从来没有。

在我看来 ::ffff:25.0.1.1 应该被上面的 CIDR 排除并且在单元测试中。

而且我注意到在生产中,

非常抱歉,伙计们,我还从第二个环境发布到速率限制器,这意味着这是误报。模组欢迎删除,否则我会尽快