Friendly connection codes

Share a short code instead of a long IP address.

FriendlyIP is an IP shortener that turns addresses like 255.255.255.255 into short codes like 99srAS. Use it anywhere people need to type an address by hand: setup screens, LAN games, support calls, routers, and local network tools.

Use it anywhere that FriendlyIPs are supported! Free offline API for all indie devs. Need a scannable QR, temporary code, or IPv6? Try QR beta, FriendlyPIN beta, or the IPv6 beta.

Try it now

Shorten or decode an IPv4 address

IPv4
Friendly code
------

Example use

Put the easy code on the big screen.

A game, router, or setup app can show the FriendlyIP code where the user can see it. They type the short code into the other device instead of copying a full IPv4 address.

Living room TV ------

Connect to 42.13.37.67

Phone app

Enter FriendlyIP

------ Connect

Choose a code type

Start simple, then use the online tools when you need them.

IPv4

Six characters, no lookup

For IPv4, FriendlyIP creates a six-character code that can be decoded locally. No account, sign-up, or internet connection is needed.

QR

Scan instead of typing

Use QR beta to turn an IPv4 or IPv6 address into a scannable code that can be downloaded as SVG.

PIN

Temporary setup codes

Use FriendlyPIN beta when you want a short 1-hour code for either IPv4 or IPv6, especially in a one-time pairing or support flow.

IPv6

Short online lookup codes

Use IPv6 beta for long IPv6 addresses. IPv6 codes are online lookup codes because IPv6 is too large for a useful local six-character code.

Built for people

Designed for screens where typing is the hard part.

Real use

Read it, say it, type it

A short code is easier to read across a room, enter on a TV remote, paste into a support ticket, or show in a pairing flow.

Creator

Made by MikeTheTech

FriendlyIP was created by MikeTheTech of PyroSoft Productions for indie apps, LAN games, device setup flows, support utilities, and internal network tools.

For developers

FriendlyIP uses Human-safe Base57 IPv4 encoding.

This is a custom FriendlyIP encoding method: convert an IPv4 address into a 32-bit integer, then encode it with a human-safe Base57 alphabet that avoids easily confused characters.

  1. Parse the IPv4 address into a 32-bit integer.
  2. Convert the integer to base57 using the FriendlyIP alphabet.
  3. Left-pad to six characters with the first alphabet character.
  4. Decode by reversing the process and rejecting out-of-range values.
Alphabet 23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

For developers

Use the hosted API or import the browser module.

Encode IPv4 GET https://friendlyip.com/api/ipv4/encode/index.php?ip=42.13.37.67

Returns { "ip": "42.13.37.67", "code": "3BqaAL" }. JSON POST is also supported with { "ip": "42.13.37.67" }. The legacy URL /api/encode/index.php still works.

Decode IPv4 GET https://friendlyip.com/api/ipv4/decode/index.php?code=3BqaAL

Returns { "ip": "42.13.37.67", "code": "3BqaAL" }. JSON POST is also supported with { "code": "3BqaAL" }. The legacy URL /api/decode/index.php still works.

IPv6 beta POST https://friendlyip.com/api/ipv6/encode/index.php

IPv6 uses online lookup codes. Six-character FriendlyIP codes stay reserved for IPv4. Decode assigned IPv6 lookup codes with POST https://friendlyip.com/api/ipv6/decode/index.php, or try the IPv6 beta converter.

FriendlyPIN beta POST https://friendlyip.com/api/pin/create/index.php

FriendlyPINs are temporary Base57 codes for IPv4 or IPv6 addresses. They expire after 5 minutes to 1 hour, allow up to 5 active PINs per IP, and use 4 characters first.

FriendlyPIN SaaS POST https://friendlyip.com/yourcompany/api/pin/create/index.php

Need a branded, tuned PIN endpoint? PyroSoft can spin up a dedicated FriendlyPIN endpoint with your own URL slug, PIN length, expiration window, and isolated PIN pool. Paid add-on — see the FriendlyPIN SaaS details.

Code samples

Drop the encoder directly into your product.

HTML
<script type="module" src="./app.js"></script>
JavaScript module

          
Python
ALPHABET = "23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"

def encode_ipv4(ip):
    value = 0
    for octet in ip.split("."):
        value = (value << 8) + int(octet)

    code = ""
    for _ in range(6):
        code = ALPHABET[value % 57] + code
        value //= 57
    return code

Local browser module

import { encodeFriendlyIp, decodeFriendlyIp } from "./friendly-ip.js"

Download the module to bundle it with your app or use it offline: friendly-ip.js

Alphabet: