{"record":{"id":"d9bec39f15c10bd6","repo":"lionsoul2014/ip2region","slug":"invalid-ipv6-part-ps-i-should-0-and-65","errorCode":null,"errorMessage":"invalid ipv6 part '${ps[i]}' should >= 0 and <= 65534","messagePattern":"invalid ipv6 part '(.+?)' should >= 0 and <= 65534","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"binding/javascript/util.js","lineNumber":123,"sourceCode":"                }\n\n                i++;\n            }\n\n            dc_num = 1;\n            // padding = 8 - start - left\n            let padding = 8 - start - (mi - i);\n            offset += 2 * padding;\n            continue;\n        }\n\n        let v = parseInt(s, 16);\n        if (isNaN(v)) {\n            throw new Error(`invalid ipv6 part '${ps[i]}', a valid hex number expected`);\n        }\n\n        if (v < 0 || v > 0xFFFF) {\n            throw new Error(`invalid ipv6 part '${ps[i]}' should >= 0 and <= 65534`);\n        }\n\n        ipBytes.writeUint16BE(v, offset);\n        offset += 2;\n    }\n\n    return ipBytes;\n}\n\n\n// parse the specified string ip and return its bytes\n// @param  ip string\n// @return Buffer\nexport function parseIP(ipString) {\n    let sDot = ipString.indexOf('.');\n    let cDot = ipString.indexOf(':');\n    if (sDot > -1 && cDot == -1) {\n        return _parse_ipv4_addr(ipString);","sourceCodeStart":105,"sourceCodeEnd":141,"githubUrl":"https://github.com/lionsoul2014/ip2region/blob/c1a1fc7d5941760db3f8431dc05c48cf7f0e30a1/binding/javascript/util.js#L105-L141","documentation":"Range guard in the IPv6 parser: a group parsed as hex but exceeded the 16-bit group limit of 0xFFFF (e.g. '2001:db8:12345::1'). Each colon-separated group must fit in two bytes.","triggerScenarios":"Thrown at binding/javascript/util.js:123 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Split oversized groups into two correct 16-bit groups","Reject any group > 0xFFFF during upstream validation","Check for a missing colon that merged two groups into one"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c1a1fc7d5941760db3f8431dc05c48cf7f0e30a1","analyzedAt":"2026-09-02T16:58:39.988Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-09T21:17:11.164Z"}