Fixed 267U.pre2

This commit is contained in:
2026-07-26 18:25:37 +09:00
parent 50bfaeafdf
commit 317d00a284
1286 changed files with 80222 additions and 1 deletions
@@ -0,0 +1,22 @@
import IPCIDR from "ip-cidr";
import net from "node:net";
function normalizeIp(ip) {
let normalized = ip.split(",")[0]?.trim();
if (!normalized) return null;
if (normalized.startsWith("[") && normalized.includes("]")) {
normalized = normalized.slice(1, normalized.indexOf("]"));
}
if (net.isIP(normalized)) return normalized;
const ipv4WithPort = normalized.match(/^(\d{1,3}(?:\.\d{1,3}){3}):\d+$/);
if (ipv4WithPort && net.isIPv4(ipv4WithPort[1])) return ipv4WithPort[1];
return null;
}
export function getIpHash(ip) {
const normalized = normalizeIp(ip);
if (!normalized) return "ip-invalid";
// because a single person may control many IPv6 addresses,
// only a /64 subnet prefix of any IP will be taken into account.
// (this means for IPv4 the entire address is used)
const prefix = IPCIDR.createAddress(normalized).mask(64);
return `ip-${BigInt(`0b${prefix}`).toString(36)}`;
}