{"record":{"id":"266efa9bfa9e684a","repo":"lionsoul2014/ip2region","slug":"invalid-ipv4-part-ps-i-should-0-and-25","errorCode":null,"errorMessage":"invalid ipv4 part '${ps[i]}' should >= 0 and <= 255","messagePattern":"invalid ipv4 part '(.+?)' should >= 0 and <= 255","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"binding/javascript/util.js","lineNumber":66,"sourceCode":"// ---\n\n// parse ipv4 address\nfunction _parse_ipv4_addr(v4String) {\n    let ps = v4String.split('.', 4);\n    if (ps.length != 4) {\n        throw new Error('invalid ipv4 address');\n    }\n\n    var v;\n    const ipBytes =  Buffer.alloc(4);\n    for (var i = 0; i < ps.length; i++) {\n        v = parseInt(ps[i], 10);\n        if (isNaN(v)) {\n            throw new Error(`invalid ipv4 part '${ps[i]}', a valid number expected`);\n        }\n\n        if (v < 0 || v > 255) {\n            throw new Error(`invalid ipv4 part '${ps[i]}' should >= 0 and <= 255`);\n        }\n\n        ipBytes[i] = (v & 0xFF);\n    }\n\n    return ipBytes;\n}\n\n// parse ipv6 address\nfunction _parse_ipv6_addr(v6String) {\n    let ps = v6String.split(':', 8);\n    if (ps.length < 3) {\n        throw new Error('invalid ipv6 address');\n    }\n\n    let dc_num = 0, offset = 0;\n    const ipBytes = Buffer.alloc(16);\n    for (var i = 0; i < ps.length; i++) {","sourceCodeStart":48,"sourceCodeEnd":84,"githubUrl":"https://github.com/lionsoul2014/ip2region/blob/c1a1fc7d5941760db3f8431dc05c48cf7f0e30a1/binding/javascript/util.js#L48-L84","documentation":"Range guard in the IPv4 parser: the octet parsed as a number but fell outside the valid 0-255 byte range (e.g. '300.1.1.1'). The message names the specific out-of-range part.","triggerScenarios":"Thrown at binding/javascript/util.js:66 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Clamp or correct the octet so each of the four parts is between 0 and 255","Reject inputs with any octet > 255 during upstream validation","If the value came from a computation, mask with & 0xFF only when truncation is intended"],"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"}