Adres IP składa się z czterech liczb dziesiętnych, z których każda może mieścić się w zakresie od 0 do 255. Każda taka liczba jest odpowiednikiem dwucyfrowej liczby szesnastkowej lub ośmiobitowej i dlatego nazywana jest oktetem. Te cztery krótkie liczby czasami trzeba przetłumaczyć na jedną długą podczas pisania skryptów.
Instrukcje
Krok 1
Pomnóż pierwszy oktet adresu IP przez 16777216 lub równoważnie 256 do trzeciej potęgi. Na przykład, jeśli mówimy o adresie IP 192.168.1.1 (często występuje w małych sieciach lokalnych), to po pomnożeniu liczby 192 przez 16777216 otrzymasz 3221225472.
Krok 2
Pomnóż drugą liczbę przez 65536 - tyle otrzymasz, jeśli podbijesz 256 do drugiej potęgi. Na przykład w adresie 192.168.1.1 musisz pomnożyć 168 przez 65536, a otrzymasz 11010048.
Krok 3
Pomnóż trzeci oktet przez 256 do pierwszej potęgi - czyli przez samą liczbę 256. Jeśli przekonwertujesz adres IP 192.168.1.1 na długą formę, wynik tego mnożenia wyniesie 256 * 1 = 256.
Krok 4
Pozostaw czwartą liczbę bez zmian, co jest równoznaczne z pomnożeniem przez jeden. Wynika to z faktu, że jeśli podniesiesz liczbę 256 (lub dowolną inną liczbę) do potęgi zerowej, otrzymasz 1. W adresie IP 192.168.1.1 wynik mnożenia wyniesie 1 * 1 = 1.
Krok 5
Dodaj wszystkie cztery wyniki mnożenia razem. W rozważanym przykładzie kwota będzie wyglądać tak: 3232235777.
Krok 6
Podczas programowania w PHP użyj gotowej funkcji ip2long, aby przetłumaczyć adres IP na długą formę. Funkcję o podobnym przeznaczeniu można skomponować i zawrzeć w programie lub osobnym module w innym języku programowania.
Krok 7
Dużo rzadziej zdarza się zadanie tłumaczenia adresu IP z długiej formy z powrotem na krótszą. Aby to zrobić, podziel długi adres przez 16777216, a cała część wyniku dzielenia stanie się pierwszym oktetem. Podziel resztę (nie myl jej z częścią ułamkową) przez 65536, aby otrzymać drugi oktet i tak dalej. W kalkulatorach inżynierskich obliczyć moduł w następujący sposób: [C] pierwsza liczba [MOD] druga liczba [=]. Najprostsze kalkulatory nie mają tej funkcji.
Krok 8
Pisząc funkcję do wykonania tłumaczenia zwrotnego w określonym języku programowania, użyj funkcji do dzielenia liczb całkowitych i obliczania pozostałej części dzielenia. Na przykład w Pascalu są one nazywane odpowiednio div i mod. Fragment programu do wykonania takiego tłumaczenia może wyglądać tak:
oktet [1]: = longip div 16777216;
następny numer: = longip mod 16777216;
oktet [2]: = następny numer dział 65536;
następny numer: = następny numer mod 65536;
oktet [3]: = następny numer dział 256;
oktet [4]: = następny numer mod 256;