Skip to content
uencoder
TUTORIAL

How to Parse IP Addresses

Parse, validate, and extract information from IPv4 and IPv6 addresses.

Problem

You need to validate an IP address and determine its type (IPv4, IPv6, private, loopback).

Prerequisites

  • Understanding of IPv4 and IPv6 formats
  • Knowledge of address ranges

Steps

  1. 1. Determine the IP version

    IPv4 addresses are four decimal octets separated by dots (192.168.1.1). IPv6 addresses are eight hex groups separated by colons (2001:db8::1), with zero compression (::) for consecutive zero groups. Detect the format to parse correctly.

    Input
    192.168.1.1
    Output
    IPv4
  2. 2. Validate and parse

    Check that each IPv4 octet is 0-255 and each IPv6 group is 0000-ffff. Handle IPv6 shorthand (:: compression, embedded IPv4 in ::ffff:a.b.c.d format). Reject invalid addresses. Parse into a binary representation for comparison.

    Input
    2001:db8::1
    Output
    valid IPv6
  3. 3. Classify the address

    Determine the address type: private (10.x, 172.16-31.x, 192.168.x for IPv4; fc00::/7 for IPv6), loopback (127.0.0.1, ::1), link-local (169.254.x, fe80::/10), or public. This classification is useful for security and routing decisions.

    Input
    192.168.1.1
    Output
    private (RFC 1918)

Expected result

A validated, parsed IP address with its version and classification.

Common errors

IPv6 compression not handled
Expand :: to the correct number of zero groups before parsing. The :: can appear at most once in an address.
Leading zeros in IPv4 octets
Some systems interpret leading zeros as octal (010 → 8). Reject or normalize addresses with leading zeros to avoid ambiguity.

Troubleshooting

  • If an address fails validation, check for extra whitespace, wrong separator, or out-of-range values.
  • IPv4-mapped IPv6 addresses (::ffff:192.0.2.1) represent IPv4 in IPv6 format.

Security limits

  • IP address classification helps identify internal vs external traffic. Do not rely solely on IP for authentication (IP spoofing is possible).

Related tools

Related tasks

Ready to run it?

References