IPv4 adresa je 32-bitni broj
Poznati oblik sa tačkama su samo četiri bajta zapisana decimalno. 192.168.1.1 su bajtovi C0 A8 01 01, koji pročitani kao jedan big-endian 32-bitni broj daju 0xC0A80101 = 3.232.235.777. Svaki oktet se množi stepenom broja 256: 192×256³ + 168×256² + 1×256 + 1.
- Uzmite oktete redom: a, b, c, d.
- Izračunajte a×16.777.216 + b×65.536 + c×256 + d.
- Za obrnut smer, uzastopno delite sa 256 i zadržavajte ostatke (ili pomerajte udesno za 8 i maskirajte sa 255).
Gde se koristi celobrojni oblik
- Baze podataka: MySQL
INET_ATON()/INET_NTOA()i PostgreSQL tipinetčuvaju i indeksiraju adrese kao brojeve da bi upiti po opsegu (ip BETWEEN start AND end) bili brzi. GeoIP tabele koriste isti trik. - Programiranje:
inet_atonu C-u,ip2longu PHP-u,int(ipaddress.ip_address(x))u Pythonu,binary.BigEndian.Uint32(ip.To4())u Go-u. - Liste pristupa i firewall-i, koji broj porede sa maskom.
Neobični oblici koje pregledači prihvataju
Pošto je adresa broj, i http://3232235777/ i http://0xC0A80101/ u većini pregledača vode na 192.168.1.1, a 192.168.257 se tumači kao 192.168.1.1 (poslednji deo se preliva u prethodni oktet). To je klasičan način da se adresa sakrije u phishing linku, i razlog da se unos strogo proverava, kao što ovaj alat radi.
Pitanja
Koliko iznosi 192.168.1.1 kao ceo broj?
3.232.235.777 decimalno, 0xC0A80101 heksadecimalno. Dobija se iz 192×256³ + 168×256² + 1×256 + 1.
Zašto bih čuvao IP adrese kao cele brojeve?
Ceo broj zauzima 4 bajta umesto do 15 znakova, sortira se u mrežnom redosledu i omogućava da pripadnost opsegu proverite sa dva poređenja. Većina GeoIP i firewall podataka čuva se tako.
Koji je najveći IPv4 ceo broj?
4.294.967.295 (2³² − 1), što je 255.255.255.255.
Radi li ovo za IPv6?
IPv6 adrese su 128-bitni brojevi i traže drugi alat: koristite IPv6 kalkulator, koji prikazuje prošireni, sažeti i binarni oblik.
Da li je 192.168.001.001 isto što i 192.168.1.1?
Ne pouzdano. Neki parseri oktet sa vodećom nulom tumače kao oktalni (001 je u redu, ali 010 bi bilo 8). Pišite oktete bez vodećih nula da izbegnete dvosmislenost; ovaj alat ih baš zato odbija.