Fundamentals 9 min read

Can You Write IPv4 Addresses in One Number? Exploring the Hidden Shorthand Rules

This article explains the undocumented IPv4 address shorthand supported by Unix-like tools, detailing how different part counts are expanded, the underlying fill‑in logic, practical command‑line examples, security implications, and cross‑platform compatibility.

BirdNest Tech Talk
BirdNest Tech Talk
BirdNest Tech Talk
Can You Write IPv4 Addresses in One Number? Exploring the Hidden Shorthand Rules

Background and Origin

In the early days of computer networking engineers often typed IP addresses manually for configuration and testing. The standard dotted‑decimal form (e.g., 192.168.1.1) was cumbersome, so Unix utilities such as ping and telnet adopted a shorthand mechanism that allows omitted octets to be automatically filled. The feature stems from the BSD inet_aton() implementation, which supports several non‑standard compact notations and has become a de‑facto standard despite lacking an RFC definition.

Core Parsing Rules

The shorthand is interpreted according to the number of dot‑separated parts supplied:

1. Four‑part format a.b.c.d

Result: Interpreted exactly as a standard IPv4 address.

Example: 8.8.8.8 → 8.8.8.8
Example: 127.0.0.1 → 127.0.0.1

2. Three‑part format a.b.c

Result: Expanded to a.b.0.c, inserting a zero between the second and third parts while keeping the last number in the fourth octet.

Example: 8.8.8 → 8.8.0.8
Note: the final 8 stays at the end, a zero is inserted in the middle.

3. Two‑part format a.b

Result: Expanded to a.0.0.b, inserting two zeros between the first and last numbers.

Example: 8.8 → 8.0.0.8
Note: the final 8 stays at the end, two zeros fill the missing octets.

4. Single‑part format a

Result: Expanded to 0.0.0.a, placing the sole number in the last octet and padding three leading zeros.

Example: 8 → 0.0.0.8
Example: 127 → 0.0.0.127
Note: the number becomes the final octet.

Special case: If the single part exceeds 255, it is treated as a 32‑bit integer and converted to the corresponding dotted address.

Example: 2130706433 → 127.0.0.1
Calculation: 2130706433 = 127×256³ + 0×256² + 0×256 + 1
Example: ping 8.526344 ≡ ping 8.8.8.8
Example: ping 8.8.2056 ≡ ping 8.8.8.8

Filling Mechanism Explained

The core idea is that the last number always occupies the fourth octet , and any missing octets are filled with zeros placed between the first number(s) and that final number.

Preserve network prefix: The first number (if present) represents the class‑A/B/C network and stays in the first octet.

Preserve host portion: The final number is locked to the fourth octet, representing the host address.

Zero‑fill the middle: Zeros are inserted between the leading numbers and the final octet to complete four octets.

The algorithm can be described as:

Identify the positions of the first and last numbers.

Insert 0 in the middle until four octets are formed.

Practical Application Scenarios

Quick Network Tests

# Test Google DNS
ping 8.8.8.8      # standard format
ping 8.8.8       # shorthand → 8.8.0.8
ping 8.8         # shorthand → 8.0.0.8

# Test local loopback
ping 127.0.0.1   # standard format
ping 127.1       # shorthand → 127.0.0.1

Local Loopback Access

# Access a local service
curl 127.1        # equivalent to 127.0.0.1
telnet 127.1 8080 # connects to 127.0.0.1:8080
curl 8            # equivalent to 0.0.0.8 (non‑local)

Rapid Input Scenarios

# Compare input effort
ssh [email protected]   # 7 characters needed
ssh [email protected]    # 5 characters, resolves to 8.8.0.8

# In an internal network
ping 10.1          # quickly tests 10.0.0.1

Security Considerations

The shorthand can introduce security risks:

1. URL Parsing Ambiguity

http://127.1/admin   # may bypass a blacklist for 127.0.0.1
http://2130706433/   # decimal representation of 127.0.0.1

2. Log Analysis Difficulty

Identical hosts may appear under different textual forms, complicating audit trails.

3. Firewall Rule Evasion

Some firewalls fail to recognise non‑standard notations, allowing unintended traffic.

Compatibility Notes

Support varies across platforms:

✅ Full support: Linux, macOS, BSD network utilities.

⚠️ Partial support: Windows (certain ping versions), but browsers generally reject the format.

❌ No support: Most modern web browsers (security reasons) and many language standard libraries.

Recommendation

Knowing the shorthand is useful for quick command‑line work, but it is rarely used in everyday practice.

References:

BSD Socket API Documentation

inet_aton() Manual Pages

IETF RFC 3986 (URI Generic Syntax)

securityUnixIPv4network utilitiesaddress shorthand
BirdNest Tech Talk
Written by

BirdNest Tech Talk

Author of the rpcx microservice framework, original book author, and chair of Baidu's Go CMC committee.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.