IP Tools — Manual

The full feature reference for the IP Tools: My IP, subnet calculator, IP converter, IPv6 ULA generator and range calculator — field by field.

Back to the overview: IP Tools · Open the tool live: www.jpkc.com/tools/ip/

This manual describes each of the six tabs in full: what input it expects, what it outputs, and how to read the values.

My IP — your current IP address

The first tab (My IP) shows the IP address your request arrives with at the server. Unlike the other tabs, it relies on a small piece of server-side PHP, because a browser can't know its own public address. It displays:

  • The address itself, shown large, with a Copy IP button.
  • Two badges: the type (e.g. Public, Private, Loopback) and the version (IPv4 or IPv6).
  • Detail cards depending on version. For IPv4: IP Version, Type, Description, Decimal (the address as a 32-bit integer), Hexadecimal (0x…), Binary (four octets as a bit string), and IPv4-mapped IPv6 (::ffff:…). For IPv6: Expanded (the full eight-group form) and Compressed (the shortened :: notation).
  • Proxy Headers Detected — a note block that only appears when your request came through a load balancer or CDN. It recognizes X-Forwarded-For, X-Real-IP, and CF-Connecting-IP (Cloudflare). These headers can reveal your original IP even when the direct connection IP differs.

The classification follows the same rules as the converter (see below): private ranges per RFC 1918, loopback, link-local (APIPA), shared/CGN, documentation, multicast, and so on.

Subnet Calc — IPv4 subnet calculator

The Subnet Calculator breaks an IPv4 address down into all the parts of its subnet.

Input

In the IP Address with CIDR or Subnet Mask field you enter an address in one of these forms:

  • with a CIDR prefix: 192.168.1.50/24
  • with a dotted subnet mask: 10.0.0.1/255.255.255.0
  • as a bare IP with no suffix: the tool then assumes /24.

A dotted mask has to be contiguous (a real subnet mask like 255.255.255.0, not 255.0.255.0); otherwise the tool reports invalid input. The Quick buttons load ready-made examples like 192.168.1.1/24 or 10.10.10.10/30 with one click. Press Enter or Calculate to run.

Output

The result has three blocks:

Binary Breakdown — a bit-by-bit view of the IP address, subnet mask, network address, and broadcast across all 32 bits. The network bits are colored distinctly from the host bits, so you can see at a glance where the prefix ends.

Subnet Details — a table of every derived value, each with a copy button:

  • IP Address — your input with its prefix.
  • Network Address — the first address of the subnet (all host bits = 0).
  • Broadcast — the last address (all host bits = 1).
  • Subnet Mask — the mask in dotted notation.
  • Wildcard Mask — the inverse of the mask (for ACLs and OSPF).
  • First Usable Host and Last Usable Host — the usable host range.
  • Usable Hosts — the number of usable hosts.
  • IP Class — the classic network class (A–E) of the network address.
  • IP Type — the classification (private, public, loopback …).
  • Total Addresses — the total number of addresses in the block (2 to the power of (32 − prefix)).

Two special cases are handled cleanly: a /31 is treated per RFC 3021 as a point-to-point link with 2 usable hosts (network and broadcast addresses count), and a /32 as a single host with 1 address. For all other prefixes the usual formula applies: usable hosts = 2 to the power of (host bits) − 2.

Subnet Splits — a preview of how the subnet could be divided further. For prefixes shorter than /30, the tool shows the next four narrower prefixes (prefix +1 through +4, up to /30), each with the host count per sub-network and up to four concrete example subnets. If the subnet is already /30 or narrower, a note appears that no useful further splits are possible.

Converter — IP address converter

The IP Converter turns a single address into every common notation. You enter an IPv4 or IPv6 address; the tool detects the version itself. The Examples buttons load samples like 192.168.1.1, ::1, or ::ffff:192.168.1.1.

IPv4 input

For an IPv4 address, the results table gives you:

  • Dotted decimal (IPv4) — the normal dotted notation.
  • Hexadecimal — the address as 0x… (8 hex digits).
  • Decimal integer — the address as a 32-bit integer (e.g. 192.168.1.13232235777).
  • Binary (octets) — four octets as a bit string.
  • IPv4-mapped IPv6 — the embedding into IPv6 as ::ffff:hi:lo.
  • IPv4-mapped IPv6 (mixed) — the mixed notation ::ffff:192.168.1.1.
  • 6to4 prefix — the corresponding 2002:…::/48 prefix (RFC 3056).
  • Address type — the type and description of the address.

IPv6 input

For an IPv6 address, the table gives you:

  • Compressed IPv6 — the shortened form (leading zeros dropped, longest zero run as ::).
  • Expanded IPv6 — the full eight-group form with four hex digits each.
  • Address type — type and description.

Context-dependent rows appear in addition: if the address is IPv4-mapped (::ffff:…), the tool shows the embedded IPv4 plus its decimal and hexadecimal forms. If it's a 6to4 address (2002:…), it shows the embedded IPv4. There's also a Decimal integer (128-bit) row holding the entire IPv6 address as a 128-bit integer (computed via BigInt).

Every value row except the type descriptions has a copy button.

IPv6 ULA — generator for private IPv6 addresses

The IPv6 ULA Generator produces a private IPv6 address, the IPv6 counterpart to the RFC 1918 ranges (10.x, 172.16.x, 192.168.x).

What a ULA is

Unique Local Addresses (ULA) per RFC 4193 are meant for use inside private networks. They use the fd00::/8 prefix. The key point: the 40-bit Global ID is randomly generated so it is statistically unique worldwide. That lets two networks be merged without address conflicts — a clear advantage over the fixed IPv4 private ranges. (The other half of the range, fc00::/8, is reserved for future central allocation; the usable part today is fd00::/8.)

How the ULA is generated

Clicking Generate Random ULA pulls five cryptographically random bytes from the browser function crypto.getRandomValues — those are the 40 bits of the Global ID. From them the tool builds the ULA prefix following the fixed scheme fd + Global ID. The tab generates a first ULA automatically when you open it. It outputs four cards, each with a copy button:

  • /48 Prefix (assign to your site) — the prefix you assign to your location, e.g. fdxx:xxxx:xxxx::/48.
  • /64 Example Subnet (first subnet) — the first /64 sub-network (…:0001::/64).
  • Example Host Address — a sample host address in that sub-network (…:0001::1).
  • Global ID (random, 40 bits) — the raw 40-bit Global ID as hex.

Below that, an Address Structure graphic shows the bit layout of the 128-bit address by color: fd as the 8-bit prefix, the 40-bit Global ID, the 16-bit Subnet ID, and the 64-bit Interface ID.

The ULA structure in detail

The info block at the end of the tab lays out all 128 bits in full:

Bits Field Value
7 Prefix 1111110
1 L-bit 1 (locally assigned)
40 Global ID random (crypto)
16 Subnet ID your choice (0–65535)
64 Interface ID EUI-64 or random

The first eight bits (seven prefix bits plus the set L-bit) together produce the fixed value fd. The block also lists typical use cases (internal services, lab/test environments, addresses independent of ISP assignment, conflict-free merging of two networks) and explains the EUI-64 derivation of the Interface ID: insert FF:FE into the middle of the 48-bit MAC and flip bit 7 — example 00:1A:2B:3C:4D:5E021a:2bff:fe3c:4d5e.

IP Range — range ↔ CIDR

The IP Range Calculator converts both ways between an address range and CIDR blocks. The tab is split into two cards.

Range → CIDRs

You enter a Start IP and an End IP (quick examples like 192.168.1.0192.168.1.255 are pre-filled). The tool computes the minimal list of CIDR blocks that exactly cover the range. The algorithm is greedy: at the current start address it finds the largest aligned block that doesn't run past the end, subtracts it, and repeats. A range whose size isn't a power of two therefore always needs several CIDRs.

It outputs a summary (range, total number of addresses, number of CIDR blocks) and a table with CIDR, First, Last, and Addresses per block — each copyable. A Copy all CIDRs button copies the whole list line by line, handy for firewall rules.

CIDR → Range

Here you enter a CIDR prefix (e.g. 10.0.0.0/22). The tool shows the full range:

  • CIDR, Start (Network), End (Broadcast)
  • First usable and Last usable
  • Total addresses and Usable hosts
  • Subnet mask and Wildcard mask

Below that, a small progress bar illustrates what share of a larger reference block (/8, /16, or /24, depending on the prefix) the block represents.

Reference — lookup tables

The Reference tab is a pure lookup resource with no input. It contains:

  • IPv4 Special Address Ranges — a table of reserved and private IPv4 ranges with range, CIDR, host count, type, and RFC: the three private ranges (10/8, 172.16/12, 192.168/16, RFC 1918), loopback (127/8), link-local/APIPA (169.254/16), shared/CGN (100.64/10), the documentation ranges (TEST-NET-1 through -3), multicast (224/4), reserved (240/4), broadcast (255.255.255.255), and "this network" (0/8).
  • IPv6 Special Address Ranges — the key IPv6 prefixes: loopback (::1/128), unspecified (::/128), IPv4-mapped (::ffff:0:0/96), NAT64 (64:ff9b::/96), ULA (fc00::/7), link-local (fe80::/10), multicast (ff00::/8), global unicast (2000::/3), documentation (2001:db8::/32), 6to4 (2002::/16), and discard-only (100::/64).
  • IPv4 Classful Network Classes — the classic classes A through E with range, default mask, number of networks, and hosts per network.
  • IPv4 CIDR Quick Reference — a complete table of every prefix from /0 to /32 with subnet mask, host count, the number of sub-networks of a /24, and notes. The All and Common buttons switch between every prefix and just the common ones.
  • Key Concepts — short explanations of IPv4 vs. IPv6, CIDR, NAT, subnet vs. wildcard mask, VLSM, and IPv6 Prefix Delegation.

Limits and notes

  • The subnet calculator, range calculator, and CIDR table work with IPv4. For IPv6 there's the converter, the ULA generator, and the reference tables, but no dedicated IPv6 subnet calculator.
  • Everything except My IP runs purely in the browser. There's no API and no data transfer; the ULA randomness comes from crypto.getRandomValues.
  • My IP only reflects your request. The address (and any proxy headers) come from the live request and are not stored.

For the introduction and the big picture, see the overview; for concrete calculations, the examples. You can try everything directly in the tool.