regex match IPv4 address

# Match any IPv4-shaped string (fast, simple)
/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/

# Strict — enforces 0-255 per octet
/\b(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\b/

Extract IP addresses from logs or validate that a string is a valid IPv4 address.

Strict octet range breakdown

25[0-5]      250-255
2[0-4]\d     200-249
1\d{2}       100-199
[1-9]\d      10-99
\d           0-9

JavaScript — extract IPs from log

const log = 'Connection from 192.168.1.1 and 10.0.0.255';
const ipPattern = /\b(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\b/g;
log.match(ipPattern)
// ['192.168.1.1', '10.0.0.255']

Python — use ipaddress module for validation

For validation, the standard library is more reliable than regex.

import ipaddress

def is_valid_ipv4(addr):
    try:
        ipaddress.IPv4Address(addr)
        return True
    except ValueError:
        return False

is_valid_ipv4('192.168.1.1')   # True
is_valid_ipv4('999.0.0.1')     # False