Skip to content
networking addressing

IP Address (IP)

ip-address networking-fundamentals ipv4 ipv6
Plain English

An IP address is a device’s home address on a network. Just like a mailing address tells the postal service where to deliver a letter, an IP address tells the network where to send data. Every device that connects to the internet or a local network gets one. Without IP addresses, devices would have no way to find each other.

Technical Definition

An Internet Protocol (IP) address is a numerical identifier assigned to each device participating in a network that uses the Internet Protocol for communication. It serves two functions: host identification and location addressing.

IPv4 (RFC 791): 32-bit address written as four decimal octets (e.g., 192.168.1.10). Provides approximately 4.3 billion unique addresses. Exhausted globally; IANA allocated the last /8 blocks in 2011.

IPv6 (RFC 8200): 128-bit address written as eight groups of four hexadecimal digits (e.g., 2001:0db8:85a3:0000:0000:8a2e:0370:7334). Provides 3.4 x 10^38 addresses, effectively unlimited.

Address classes and ranges (IPv4):

RangeTypeUse
10.0.0.0/8Private (RFC 1918)Large internal networks
172.16.0.0/12Private (RFC 1918)Medium internal networks
192.168.0.0/16Private (RFC 1918)Home/small office networks
169.254.0.0/16Link-local (APIPA)Auto-assigned when DHCP fails
127.0.0.0/8LoopbackLocal machine (localhost)
100.64.0.0/10CGNAT (RFC 6598)ISP shared address space

Assignment methods:

  • Dynamic (DHCP): address assigned automatically from a pool, may change on renewal
  • Static: manually configured, does not change. Used for servers, printers, infrastructure devices
  • SLAAC (IPv6): stateless autoconfiguration using router advertisements

Viewing and managing IP addresses

# View all IP addresses (Linux)
$ ip addr show
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>
    inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0
    inet6 fe80::1a2b:3c4d:5e6f:7a8b/64 scope link

# View on macOS
$ ifconfig en0 | grep inet
	inet 192.168.1.10 netmask 0xffffff00 broadcast 192.168.1.255
	inet6 fe80::1a2b:3c4d:5e6f:7a8b%en0 prefixlen 64 scopeid 0x6

# View on Windows
> ipconfig
IPv4 Address. . . . . . . . . : 192.168.1.10
Subnet Mask . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . : 192.168.1.1

# Find your public IP
$ curl -s ifconfig.me
203.0.113.42
In the Wild

IP addresses are the most fundamental concept in networking. Every firewall rule, DNS record, routing table entry, and network diagram references IP addresses. The distinction between private IPs (used inside your network) and public IPs (used on the internet) is critical: your devices use private addresses internally, and NAT translates them to a public address for internet access. In cloud environments, you manage IP addressing through VPC/VNet configuration, assigning subnets and controlling which instances get public IPs. Static IPs are reserved for servers and infrastructure; dynamic IPs (via DHCP) are standard for workstations and mobile devices. The IPv4 exhaustion problem is real but slow-moving; most networks still run dual-stack (IPv4 + IPv6) or IPv4-only with NAT.