Konwerter IP

Konwertuj IPv4 na format dziesiętny, binarny, HEX, ósemkowy.

Działa w obie strony: wpisz IPv4 z kropkami albo liczbę dziesiętną, HEX (0x…) lub binarną — dostaniesz wszystkie formaty.

Konwerter IP

Konwertuj IPv4 w obie strony: z zapisu z kropkami na liczbę dziesiętną, binarną, HEX i ósemkową — i z powrotem, z liczby, HEX lub postaci binarnej na zwykły IP.

Dziesiętny ↔ Binarny ↔ HEX
Konwersja odwrotna: liczba, HEX lub binarnie → IP
Reprezentacja IP jako liczba całkowita

Jak korzystać

  1. Wpisz IPv4 (np. 192.168.1.1) albo liczbę dziesiętną, HEX lub binarną
  2. Narzędzie konwertuje IP na format dziesiętny, binarny, HEX i ósemkowy
  3. Skopiuj potrzebną reprezentację adresu IP z wyników

FAQ

Różne systemy mogą wymagać IP w różnych formatach. Konwersja jest również przydatna do nauki i zrozumienia struktury adresów IP.

Jest to pojedyncza liczba uzyskana przez połączenie wszystkich oktetów IP. Na przykład 192.168.1.1 w formacie dziesiętnym równa się 3232235777.

Konwerter adresu IP na postać binarną, szesnastkową i dziesiętną

Konwerter przyjmuje adres IPv4 w zwykłym zapisie z kropkami (192.168.0.10) i pokazuje go w czterech postaciach: jako jedną liczbę dziesiętną, binarnie według oktetów, szesnastkowo (HEX) i ósemkowo. Pod spodem jest tabela oktetów — każdy z czterech bajtów rozpisany na Dec, Bin i Hex — klasa adresu oraz informacja, czy adres jest prywatny. Każdą wartość skopiujesz przyciskiem.

Dla 192.168.0.10 wynik wygląda tak:

FormatWartośćGdzie się pojawia
Dziesiętny3232235530Kolumny INT UNSIGNED w bazach, logi, bazy GeoIP
Binarny11000000.10101000.00000000.00001010Ręczne liczenie masek i podsieci
Szesnastkowy0xC0A8000AZrzuty pakietów, /proc/net w Linuksie, kod
Ósemkowy300.250.0.12Rzadko: zadania szkolne, ukrywanie adresów

Oktety ósemkowe są wypisywane bez wiodącego zera. Jeśli chcesz ich użyć tam, gdzie adres jest parsowany (ping, przeglądarka), dodaj prefiks: 0300.0250.0.012. Bez niego 300.250.0.12 zostanie odczytane jako zwykły zapis dziesiętny i odrzucone jako niepoprawne.

Adres IPv4 to jedna liczba 32-bitowa

Zapis z kropkami to tylko wygodna forma. W rzeczywistości adres to 32 bity podzielone na cztery oktety po 8 bitów, każdy od 0 do 255. Pozostałe formaty to ta sama liczba w innym systemie liczbowym, więc każda konwersja sprowadza się do złożenia oktetów w liczbę albo rozłożenia liczby na oktety.

Zamiana IP na liczbę dziesiętną i z powrotem

Wzór: A×16777216 + B×65536 + C×256 + D (16777216 = 256³, 65536 = 256²).

192×16777216 = 3221225472
168×65536    =   11010048
0×256        =          0
10           =         10
-------------------------
               3232235530

W drugą stronę — dzielenie całkowite z resztą:

3232235530 ÷ 16777216 = 192, reszta 11010058
  11010058 ÷ 65536    = 168, reszta 10
        10 ÷ 256      =   0, reszta 10
→ 192.168.0.10

Narzędzie liczy tylko kierunek „IP → liczba”. Do zamiany liczby na adres IP użyj powyższego schematu lub poleceń poniżej.

Adres IP binarnie i zamiana binarnego na IP

Każdy oktet zamieniasz osobno i uzupełniasz zerami z lewej do ośmiu cyfr. Wagi bitów: 128, 64, 32, 16, 8, 4, 2, 1.

 10 = 8 + 2            → 00001010
 20 = 16 + 4           → 00010100
 30 = 16 + 8 + 4 + 2   → 00011110
 40 = 32 + 8           → 00101000
10.20.30.40 → 00001010.00010100.00011110.00101000

Zamiana binarnego zapisu na IP przebiega odwrotnie: podziel 32 bity na grupy po osiem i zsumuj wagi jedynek w każdej grupie. Nie gub zer na początku grupy — jedno brakujące zero przesuwa wszystkie kolejne oktety.

Postać binarna wyjaśnia maskę podsieci: /27 to 27 jedynek i 5 zer, czyli 255.255.255.224. Adres sieci, maskę i zakres hostów policzy kalkulator podsieci, a podział zakresów na bloki — kalkulator CIDR.

Adres IP w HEX i zamiana HEX na IP

Każdy oktet to dwie cyfry szesnastkowe: 192 = C0, 168 = A8, 0 = 00, 10 = 0A. Razem C0A8000A, z prefiksem 0xC0A8000A. Zamiana HEX na IP: podziel ciąg na pary i przelicz każdą na liczbę dziesiętną (A8 = 10×16 + 8 = 168). Gdy cyfr jest mniej niż osiem, najpierw dopisz zera z lewej: 0xA141E28 → 0A141E28 → 10.20.30.40.

Pułapka: odwrócona kolejność bajtów

W linuksowych plikach /proc/net/route i /proc/net/tcp adresy są zapisane szesnastkowo, ale w kolejności bajtów procesora (little-endian). Brama 0A00A8C0 to nie 10.0.168.192, tylko 192.168.0.10 — pary czyta się od końca. Jeśli wynik zamiany HEX na IP wygląda absurdalnie, odwróć bajty.

Ściąga: najczęstsze wartości oktetów

Te liczby pojawiają się w adresach i maskach bez przerwy, więc warto je rozpoznawać od razu. 128, 192, 224, 240, 248, 252, 254 i 255 to jedyne poprawne wartości oktetu maski — jedynki idą w niej ciągiem od lewej.

DecBinarnieHEX
00000000000
10000000101
10000010100A
127011111117F
1281000000080
16810101000A8
17210101100AC
19211000000C0
22411100000E0
24011110000F0
24811111000F8
25211111100FC
25511111111FF

W polskim Excelu oktet zamienisz formułami =DZIES.NA.DWÓJK(A1;8) i =DZIES.NA.SZESN(A1;2), a z powrotem — DWÓJK.NA.DZIES i SZESN.NA.DZIES. W Arkuszach Google i angielskim Excelu te same funkcje nazywają się DEC2BIN, DEC2HEX, BIN2DEC i HEX2DEC. Cały adres najpierw rozdziel na oktety funkcją „Tekst jako kolumny” z kropką jako separatorem.

Konwersja w kodzie i w terminalu

# Python
import ipaddress
int(ipaddress.IPv4Address('192.168.0.10'))      # 3232235530
str(ipaddress.IPv4Address(3232235530))          # '192.168.0.10'
str(ipaddress.IPv4Address(0x0A141E28))          # '10.20.30.40'

# PHP
sprintf('%u', ip2long('192.168.0.10'));         // 3232235530
long2ip(3232235530);                            // 192.168.0.10

# MySQL
SELECT INET_ATON('192.168.0.10'), INET_NTOA(3232235530);

# Bash: IP na HEX
printf '%02X' 192 168 0 10; echo                # C0A8000A

W bazie danych przechowuj IPv4 jako INT UNSIGNED: 4 bajty zamiast tekstu do 15 znaków i szybkie wyszukiwanie zakresów przez BETWEEN. W PHP wynik ip2long() wypisuj przez sprintf('%u'), bo w 32-bitowych wersjach adresy od 128.0.0.0 wychodzą ujemne.

Liczbowe formy adresu w linkach

Przeglądarki zgodnie ze standardem URL akceptują IPv4 nie tylko z kropkami: http://3232235530/ i http://0xC0A8000A/ prowadzą do 192.168.0.10. Korzystają z tego linki phishingowe, by ukryć cel, oraz ataki SSRF, by obejść filtry typu „zablokuj 127.0.0.1”. Jeśli filtrujesz adresy we własnym kodzie, najpierw sprowadź je do liczby 32-bitowej, a dopiero potem porównuj z listą blokad.

Klasa adresu i adresy prywatne

Pole „Klasa sieci” pokazuje historyczny podział według pierwszego oktetu: A — 0–127, B — 128–191, C — 192–223, D — 224–239 (multicast), E — 240–255 (zarezerwowana). Od 1993 roku routing jest bezklasowy (CIDR), więc klasa ma dziś znaczenie głównie dydaktyczne. Oznaczenie „Prywatny IP” dotyczy zakresów RFC 1918: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16. Nie są one routowane w internecie; swój publiczny adres sprawdzisz w narzędziu „Mój IP”, a adres serwera strony — w IP domeny.

Kilka słów o IPv6

Konwerter obsługuje wyłącznie IPv4. Adres IPv6 ma 128 bitów zapisanych jako osiem grup po cztery cyfry szesnastkowe. Zera wiodące w grupie można pominąć, a jeden ciąg samych zer zwinąć do ::: 2001:0db8:0000:0000:0000:0000:0000:0001 → 2001:db8::1. Adres IPv4 osadzony w IPv6 zapisuje się jako ::ffff:192.168.0.10, a szesnastkowo — ::ffff:c0a8:a. Taki zapis pojawia się w logach serwerów nasłuchujących IPv4 i IPv6 na jednym gnieździe — przed konwersją usuń prefiks ::ffff:.

Kaskadowa promocja witryny linkami Bonus 30 $Linki zwrotne 5→50→5000 w ponad 100 serwisach. Start od 30 $, bonus 30 $ dla nowych.