Konwerter IP
Konwertuj IPv4 na format dziesiętny, binarny, HEX, ósemkowy.
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.
Jak korzystać
- Wpisz IPv4 (np. 192.168.1.1) albo liczbę dziesiętną, HEX lub binarną
- Narzędzie konwertuje IP na format dziesiętny, binarny, HEX i ósemkowy
- Skopiuj potrzebną reprezentację adresu IP z wyników
FAQ
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:
| Format | Wartość | Gdzie się pojawia |
|---|---|---|
| Dziesiętny | 3232235530 | Kolumny INT UNSIGNED w bazach, logi, bazy GeoIP |
| Binarny | 11000000.10101000.00000000.00001010 | Ręczne liczenie masek i podsieci |
| Szesnastkowy | 0xC0A8000A | Zrzuty pakietów, /proc/net w Linuksie, kod |
| Ósemkowy | 300.250.0.12 | Rzadko: 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.
| Dec | Binarnie | HEX |
|---|---|---|
| 0 | 00000000 | 00 |
| 1 | 00000001 | 01 |
| 10 | 00001010 | 0A |
| 127 | 01111111 | 7F |
| 128 | 10000000 | 80 |
| 168 | 10101000 | A8 |
| 172 | 10101100 | AC |
| 192 | 11000000 | C0 |
| 224 | 11100000 | E0 |
| 240 | 11110000 | F0 |
| 248 | 11111000 | F8 |
| 252 | 11111100 | FC |
| 255 | 11111111 | FF |
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:.