IP adresa se skládá ze čtyř desetinných čísel, z nichž každé může mít rozsah od 0 do 255. Každé takové číslo je ekvivalentní dvoumístnému hexadecimálnímu nebo osmibitovému binárnímu číslu, a proto se nazývá oktet. Tato čtyři krátká čísla je někdy nutné při psaní skriptů překládat do jednoho dlouhého.
Instrukce
Krok 1
Vynásobte první oktet adresy IP číslem 16777216, nebo ekvivalentně 256, na třetí mocninu. Například když mluvíme o IP adrese 192.168.1.1 (ta se často vyskytuje v malých lokálních sítích), pak po vynásobení čísla 192 číslem 16777216 získáte 3221225472.
Krok 2
Vynásobte druhé číslo 65536 - to je to, kolik získáte, když zvýšíte 256 na druhou mocninu. Například na adrese 192.168.1.1 musíte vynásobit 168 číslem 65536 a dostanete 11010048.
Krok 3
Vynásobte třetí oktet o 256 na první mocninu - tedy o číslo samotné 256. Pokud převedete IP adresu 192.168.1.1 na dlouhý tvar, pak bude výsledek tohoto násobení 256 * 1 = 256.
Krok 4
Ponechte čtvrté číslo beze změny, což odpovídá vynásobení jedním. To je způsobeno skutečností, že pokud zvýšíte číslo 256 (nebo jiné číslo) na nulový výkon, získáte 1. Na IP adrese 192.168.1.1 bude výsledek násobení 1 * 1 = 1.
Krok 5
Přidejte všechny čtyři výsledky násobení. U zde uvažovaného příkladu bude částka vypadat takto: 3232235777.
Krok 6
Při programování v PHP použijte hotovou funkci ip2long k překladu adresy IP do dlouhého tvaru. Funkci podobného účelu lze sestavit a zahrnout do programu nebo samostatného modulu v jiném programovacím jazyce.
Krok 7
Úkol převést IP adresu z dlouhé formy zpět na krátkou se vyskytuje mnohem méně často. Chcete-li to provést, vydělte dlouhou adresu číslem 16777216 a celá část výsledku dělení se stane prvním oktetem. Rozdělte zbytek (nezaměňujte jej s zlomkovou částí) o 65536, abyste získali druhý oktet atd. Na technických kalkulačkách vypočítejte modul takto: [C] první číslo [MOD] druhé číslo [=]. Nejjednodušší kalkulačky tuto funkci nemají.
Krok 8
Při psaní funkce pro provedení zpětného překladu v konkrétním programovacím jazyce použijte funkce pro celočíselné dělení a výpočet zbytku dělení. Například v Pascalu se jim říká div a mod. Fragment programu pro provádění takového překladu může vypadat takto:
oktet [1]: = longip div 16777216;
nextnumber: = longip mod 16777216;
oktet [2]: = nextnumber div 65536;
nextnumber: = nextnumber mod 65536;
oktet [3]: = nextnumber div 256;
oktet [4]: = nextnumber mod 256;