lionsoul2014/ip2region · error · Error

invalid ipv6 part '${ps[i]}', a valid hex number expected

Error message

invalid ipv6 part '${ps[i]}', a valid hex number expected

What it means

Group-level parse failure in the IPv6 parser: a non-empty colon-separated group failed parseInt(group, 16), i.e. it is not a valid hexadecimal number (e.g. '2001:zz::1').

Source

Thrown at binding/javascript/util.js:119

                }

                if (i >= mi) {
                    break;
                }

                i++;
            }

            dc_num = 1;
            // padding = 8 - start - left
            let padding = 8 - start - (mi - i);
            offset += 2 * padding;
            continue;
        }

        let v = parseInt(s, 16);
        if (isNaN(v)) {
            throw new Error(`invalid ipv6 part '${ps[i]}', a valid hex number expected`);
        }

        if (v < 0 || v > 0xFFFF) {
            throw new Error(`invalid ipv6 part '${ps[i]}' should >= 0 and <= 65534`);
        }

        ipBytes.writeUint16BE(v, offset);
        offset += 2;
    }

    return ipBytes;
}


// parse the specified string ip and return its bytes
// @param  ip string
// @return Buffer
export function parseIP(ipString) {

View on GitHub (pinned to c1a1fc7d59)

Solutions

  1. Correct the group so each part is 1-4 hex digits
  2. Pre-validate with net.isIPv6 before calling the searcher
  3. Remove stray characters or whitespace inside the address string
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at binding/javascript/util.js:119 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of lionsoul2014/ip2region@c1a1fc7d59 (2026-09-02). Data as JSON: /api/errors/239705d57970b617. Report an issue: GitHub.