Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

First identify what the hexadecimal string represents. If it is four raw bytes, decode it as IPv4; if it is 16 raw bytes, decode it as IPv6. For example, C0A80001 becomes the bytes C0 A8 00 01, which render in network byte order as 192.168.0.1. A hex-encoded text string or a value stored little-endian requires a different step.

Identify the kind of hexadecimal input

“Hexadecimal IP address” is ambiguous. Before converting, determine which of these formats you have:

  • Raw address bytes: C0A80001 is four bytes and can represent IPv4. 20010DB8000000000000000000000001 is 16 bytes and can represent IPv6.
  • An integer: 0xC0A80001 is a number. Interpreting that number as an IPv4 address assumes a defined byte order; network-order interpretation gives 192.168.0.1.
  • Already formatted IPv6: 2001:0db8::1 is already an IPv6 text address. Parse it as an IP address; do not split it as a raw hex blob.
  • Hex-encoded text: 3139322E3136382E312E31 decodes to the ASCII characters 192.168.1.1. Decode it as text first, then parse that address.

For raw, unseparated address bytes, IPv4 is 4 bytes (8 hex digits) and IPv6 is 16 bytes (32 hex digits). Requiring exactly those lengths is safer than silently padding a short value. The address-family and textual representation rules are described in RFC 4291.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended approach: decode bytes, then use an IP library

A safe conversion has three steps: normalize only the input forms your data contract permits, validate the hexadecimal characters and byte count, then pass the decoded bytes to an IP-address library. That library can validate the address length and format IPv6 correctly.

#1 Best Overall
UGREEN Cat 8 Ethernet Cable 6FT, High Speed Braided 40Gbps 2000Mhz Network Cord Cat8 RJ45 Shielded Indoor Heavy Duty LAN Cables Compatible with Gaming PC PS5 PS4 PS3 Xbox Modem Router 6FT
  • 40 Gbps 2000 Mhz High Speed: The Cat 8 ethernet cable support max. 40 Gbps data transfer and 2000 MHz Brandwith, ideal for gaming and streaming, greatly improving upload and download speed, sound, image and resolution quality
  • Excellent Anti-interference: The ethernet cable comes with 4 shielded foiled twisted pairs (F/FTP), pure copper core and gold-plated RJ45 connector, reducing interference, noise and crosstalk, making network speed faster and more stable
  • Marvelous Durability: Internet cable wrapped with quality cotton braided cord, which makes the LAN cable stronger and more durable. The test proves that this internet cable can be bent at least 10000 times without broken, very suitable for long-term use
  • PoE Supported: All lengths of ethernet cord can support the PoE power supply function except 65ft. You don't need additional power supply when installing a PoE camera, which is very convenient and safe
  • Wide Compatibility: With the RJ45 Connector, network cable can be perfectly compatible with computers, laptops, modems, routers, PS5, X-Box and other networking devices. It can also be fully backward compatible with Cat7, Cat6e, Cat6, Cat5e, Cat5

Decide up front whether to accept an optional 0x prefix, whitespace, separators, or omitted leading zeroes. Do not blindly strip every non-hex character: doing so can turn malformed data into a different valid address. The examples below accept an optional 0x prefix and require otherwise contiguous hexadecimal digits.

Python

import ipaddress


def hex_to_ip(hex_string: str, family: int | None = None) -> str:
    s = hex_string.strip()
    if s.lower().startswith("0x"):
        s = s[2:]

    if not s or any(c not in "0123456789abcdefABCDEF" for c in s):
        raise ValueError("Input is not a hexadecimal string")

    if len(s) == 8:
        if family not in (None, 4):
            raise ValueError("8 hex digits represent IPv4, not IPv6")
        return str(ipaddress.IPv4Address(bytes.fromhex(s)))

    if len(s) == 32:
        if family not in (None, 6):
            raise ValueError("32 hex digits represent IPv6, not IPv4")
        return str(ipaddress.IPv6Address(bytes.fromhex(s)))

    raise ValueError("Expected 8 hex digits for IPv4 or 32 for IPv6")


print(hex_to_ip("C0A80001"))
# 192.168.0.1

print(hex_to_ip("20010DB8000000000000000000000001"))
# 2001:db8::1

Python’s standard-library ipaddress module accepts packed bytes as well as integers. The byte-based function above makes the expected length explicit. If your source contract permits both address families, an explicit family argument is preferable to guessing: length-based detection is safe only when the input is known to be a raw, unseparated byte representation.

Go

package main

import (
    "encoding/hex"
    "fmt"
    "net"
    "strings"
)

func hexToIP(s string) (string, error) {
    s = strings.TrimSpace(s)
    if strings.HasPrefix(strings.ToLower(s), "0x") {
        s = s[2:]
    }

    raw, err := hex.DecodeString(s)
    if err != nil {
        return "", err
    }

    switch len(raw) {
    case net.IPv4len:
        return net.IP(raw).String(), nil
    case net.IPv6len:
        return net.IP(raw).String(), nil
    default:
        return "", fmt.Errorf("expected 4 or 16 bytes, got %d", len(raw))
    }
}

func main() {
    ip, err := hexToIP("C0A80001")
    if err != nil {
        panic(err)
    }
    fmt.Println(ip) // 192.168.0.1
}

Go’s net package uses four-byte IPv4 and 16-byte IPv6 values and formats valid addresses through IP.String(). An address library may have an internal representation that differs from its displayed form; use its documented conversion and formatting methods rather than inferring the family from internal storage alone.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Jadaol Cat6/Cat6A Ethernet Cable 50FT Flat with Clips 10Gbps Network, White
  • Cat 6 performance at a Cat5e price but with higher bandwidth
  • High Performance Cat6, 30 AWG, RJ45 Ethernet Patch Cable provides universal connectivity for LAN network components such as PCs,computer servers,printers,routers,switch boxes,network media players,NAS,VoIP phones
  • Jadaol cat6 standard cable support Cat8 and Cat7 network and provides performance of up to 250 MHz 10Gbps and is suitable for 10BASE-T, 100BASE-TX (Fast Ethernet), 1000BASE-T/1000BASE-TX (Gigabit Ethernet) and 10GBASE-T (10-Gigabit Ethernet)
  • UTP(Unshielded Twisted Pair) patch cable with RJ45 gold-plated Connectors and are made of 100% bare copper wire, ensure minimal noise and interference
  • The unique flat cable shape allows for a cleaner and safer installation. You can easily and seamlessly make the cable run along walls, follow edges & corners or even make it completely invisible by sliding it under a carpet.

C# / .NET

using System;
using System.Linq;
using System.Net;

static string HexToIp(string input)
{
    string s = input.Trim();
    if (s.StartsWith("0x", StringComparison.OrdinalIgnoreCase))
        s = s[2..];

    if (s.Length % 2 != 0 || s.Any(c => !Uri.IsHexDigit(c)))
        throw new ArgumentException("Invalid hexadecimal input");

    byte[] bytes = Convert.FromHexString(s);
    if (bytes.Length != 4 && bytes.Length != 16)
        throw new ArgumentException("Expected 4 or 16 bytes");

    return new IPAddress(bytes).ToString();
}

IPAddress.Parse parses textual IP notation, not an arbitrary raw hex blob. Decode the raw hex to bytes first, as above. Convert.FromHexString is available in modern .NET; check the target framework if supporting older projects.

JavaScript and Node.js

For an 8-digit IPv4 value, the bytes can be converted directly to decimal octets:

function hexToIPv4(hex) {
  const s = hex.trim().replace(/^0x/i, "");
  if (!/^[0-9a-f]{8}$/i.test(s)) {
    throw new Error("Expected exactly 8 hexadecimal digits for IPv4");
  }

  return s.match(/../g)
    .map(pair => parseInt(pair, 16))
    .join(".");
}

console.log(hexToIPv4("C0A80001")); // 192.168.0.1

For IPv6, use a maintained IP-address library that accepts bytes and implements IPv6 formatting, or output expanded notation using eight groups of four hex digits. Do not claim that simply inserting colons produces canonical compressed IPv6. JavaScript’s ordinary Number cannot exactly represent every 128-bit value; use bytes or BigInt for integer input, never floating-point arithmetic.

Rank #3
DbillionDa Cat 8 Ethernet Cable, 6FT 40Gbps 2000MHz RJ45 LAN Cable
  • Designed for Outdoor & Direct Burial Installations – Heavy-duty double-shielded Cat8 Ethernet cable minimizes EMI/RFI interference and delivers stable long-distance performance. Waterproof, anti-corrosion PVC jacket allows safe direct burial and reliable use in outdoor or indoor environments.
  • 26AWG for Stable High-Load Networks – Thicker 26AWG conductors provide faster, more stable data transmission than standard 32AWG cables. Ideal for high-performance home networks, gaming setups, smart homes, and data-intensive applications.
  • F/FTP Shielding & Hyper-Speed Performance: Cat8 Ethernet cable constructed with 4 shielded foiled twisted pairs and 26AWG OFC conductors; supports bandwidth up to 2000 MHz and data transmission speeds up to 40 Gbps, effectively reducing signal interference and ensuring stable connections. Ideal for low-latency gaming, 4K/8K streaming, and high-speed internet connections.
  • RJ45 Connectors & Wide Compatibility: Cat8 Ethernet cable with two shielded RJ45 connectors; compatible with networking switches, IP cameras, routers, Nintendo Switch, modems, PS3, PS4, Xbox, patch panels, servers, smart TVs, and more; works with Cat7, Cat6, Cat5e, and Cat5 devices
  • Weatherproof & UV Resistant: Outdoor-rated Cat8 Ethernet cable with UV-resistant PVC jacket; withstands direct sunlight, extreme cold, humidity, and hot weather; anti-aging and durable; Includes 18-month support.

Node’s node:net IP validation functions are for already formatted address strings: net.isIP(text) returns 4, 6, or 0. They do not decode an unseparated raw hex value.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Manual conversion for understanding and debugging

IPv4

Take 7F000001 and split it into two-digit bytes:

7F 00 00 01

Convert each pair from base 16 to base 10: 7F is 127, 00 is 0, and 01 is 1. The result is 127.0.0.1. For each pair, the value is 16 × first hex digit + second hex digit, with A through F representing 10 through 15.

IPv6

Split the 32 digits in 20010DB8000000000000000000000001 into eight 16-bit groups:

Rank #4
Smolink Cat 8 Ethernet Cable, 50ft 40Gbps 2000MHz RJ45 LAN Cable
  • Cat 8 Speed, Cat 5/5e Value Enjoy Cat 8 Ethernet cable performance at a Cat 5/5e-level value. With up to 40Gbps speed and 2000MHz bandwidth, this high speed internet cable delivers more bandwidth than standard Cat 5 and Cat 5e cables, helping support smooth gaming, streaming, video calls, large file transfers and everyday wired network use.
  • 40Gbps Speed, Wide Compatibility This Cat 8 Ethernet cable supports up to 40Gbps data transfer and 2000MHz bandwidth for fast, reliable internet performance. Standard RJ45 connectors are backward compatible with Cat7, Cat6, Cat6a and Cat5e devices, including routers, modems, switches, gaming PCs, PS5, PS4, Xbox, smart TVs, laptops and printers.
  • Stable U/FTP Shielding Each of the 4 twisted pairs is individually wrapped with aluminum foil to help reduce crosstalk, noise, and signal interference. Combined with RJ45 connectors on both ends, the U/FTP design helps maintain cleaner signal transmission for a stable and reliable wired network connection.
  • Nylon Braided Durability The nylon braided jacket adds everyday durability while keeping the cable flexible and easy to route. Reinforced construction helps the cord handle bending, pulling and frequent plugging, making it a reliable choice for desks, gaming rooms, home offices and long-term network setups.
  • 50ft Reach for More Setups The 50 ft length makes it easier to connect devices across rooms, along walls, under desks or around corners. Great for router-to-PC connections, modem-to-TV setups, gaming consoles, workstations, printers and other home network equipment that needs a longer Ethernet cable.
2001 0DB8 0000 0000 0000 0000 0000 0001

Adding colons gives the expanded address 2001:0DB8:0000:0000:0000:0000:0000:0001. A formatter can remove leading zeroes in each group and compress a run of zero groups, producing 2001:db8::1. IPv6 compression has rules for which zero run to compress and permits only one ::; use a standards-aware library in production rather than a quick string replacement.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Byte order: the conversion’s most important assumption

The byte-pair examples assume network byte order (big-endian): the first byte in the input is the first address octet. Thus:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
C0 A8 00 01  →  192.168.0.1

If a source stores the same 32-bit value little-endian, the observed byte sequence could be 01 00 A8 C0, which renders as 1.0.168.192. Hex notation alone does not tell you which interpretation is correct. Check the protocol, database schema, file format, or serialization code that produced the value. If reversal is required, make it an explicit source-specific operation; reversing all 16 bytes is not a general IPv6 rule.

Best Value
MORELECS Cat 7 Flat Ethernet Cable 6.6FT,10Gbps,Braided,Shielded(3FT-150FT)
  • [Flat Design, Zero Cable Clutter] - Lies perfectly flat against walls, under rugs, along baseboards, and through tight spaces without kinks, tangles, or messy coils. Customers praise it for effortless installation and clean cable management that blends into any room.
  • [REINFORCED BRAIDED CONSTRUCTION FOR LONG‑LASTING PERFORMANCE] - Premium cotton braided jacket paired with reinforced RJ45 connectors delivers outstanding durability, rigorously tested for over 15,000 bend cycles. Many customers describe this ethernet cable as rock‑solid and well‑crafted, ideal for long‑term daily use with no worries about premature wear‑and‑tear or connection failure
  • [10GBPS SPEED & 600MHZ BANDWIDTH — GAMING, STREAMING & FIBER READY] - Delivers 10Gbps data transfer rate with 600MHz bandwidth for PS5, Xbox, 4K streaming, and fiber internet. Customers report stable performance and fast speeds. Backward compatible with Cat 6 and Cat 5e devices
  • [STP SHIELDING & GOLD-PLATED RJ45 — MINIMIZES EMI/RFI INTERFERENCE] - 100% bare copper STP shielding helps protect signal integrity when routed near power cords. Gold-plated RJ45 connectors resist corrosion. Compatible with 2.5GB network card
  • [Works with Everything — Router, Modem, PS5, Xbox, PC, Smart TV, Printer More ] - Full backward compatibility with Cat7, Cat6, Cat6a, and Cat5e devices means this one cable works with all your home or office equipment today, and future upgrades tomorrow. Works with 10/100/1000/10G/40G BASE-T speeds. Includes 36-month warranty with free replacement support

For a big-endian integer-to-IPv4 conversion, the octets are:

octet_1 = (value >> 24) & 0xff
octet_2 = (value >> 16) & 0xff
octet_3 = (value >> 8) & 0xff
octet_4 = value & 0xff

Keep values within the intended range: IPv4 is 32 bits, up to FFFFFFFF; IPv6 is 128 bits, up to 32 hexadecimal F characters. Check the range explicitly in languages with arbitrary-precision integers, too.

Common edge cases and mistakes

  • Wrong length: C0A8000 has an odd number of digits; C0A8000100 is five bytes. Reject them unless the input format explicitly defines another representation.
  • Invalid characters: GG000001 is not hexadecimal. Validate before decoding.
  • Missing leading zeroes: C0A801 could be padded to 00C0A801 only under a contract that permits that interpretation. Do not silently pad it.
  • Separators: C0:A8:00:01, C0-A8-00-01, and C0 A8 00 01 are not the contiguous format used by the examples. Normalize them only if the source specification permits those separators.
  • IPv4-mapped IPv6: 00000000000000000000FFFFC0A80001 is a 16-byte IPv6 representation that can display as ::ffff:192.168.0.1. Do not automatically treat it as identical to a four-byte IPv4 value for logging, comparisons, or access-control decisions. See RFC 4291 and your library’s address-family behavior.
  • IPv6 scope identifiers: a link-local address may need a zone such as %1 to identify an interface. That scope is separate from the raw 16 address bytes; supply and preserve it according to the target API. Python documents scoped addresses in its IP address module.
  • Ports: C0A80001:1F90 could be intended as an address plus a hexadecimal port, but that is not an IP-address encoding by itself. Parse endpoint formats according to their specification; IPv6 endpoints commonly put the address in brackets, as in [2001:db8::1]:8080.
  • Hex-encoded text: decode 3139322E3136382E312E31 to text first. It represents the characters “192.168.1.1,” not the four binary bytes of that address.

Test cases

For a big-endian raw-byte converter, these results provide useful checks:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Hex input Expected interpretation Formatted address
00000000 IPv4 0.0.0.0
7F000001 IPv4 127.0.0.1
C0A80001 IPv4 192.168.0.1
FFFFFFFF IPv4 255.255.255.255
00000000000000000000000000000001 IPv6 ::1
20010DB8000000000000000000000001 IPv6 2001:db8::1

Also test rejection of odd-length input, invalid characters, and lengths other than 8 or 32 digits. Include cases from your own source format for byte order and family selection; a syntactically valid address can still be the wrong interpretation of the stored data.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.