O adresă IP este formată din patru numere zecimale, fiecare dintre ele putând varia de la 0 la 255. Fiecare astfel de număr este echivalent cu un număr hexazecimal din două cifre sau binar pe opt biți și, prin urmare, se numește octet. Aceste patru numere scurte trebuie uneori să fie traduse într-un singur lung la scrierea scripturilor.
Instrucțiuni
Pasul 1
Înmulțiți primul octet al adresei IP cu 16777216 sau, echivalent, 256 la a treia putere. De exemplu, dacă vorbim despre adresa IP 192.168.1.1 (se găsește adesea în rețelele locale mici), atunci după înmulțirea numărului 192 cu 16777216 veți obține 3221225472.
Pasul 2
Înmulțiți al doilea număr cu 65536 - cam cât obțineți dacă ridicați 256 la a doua putere. De exemplu, la adresa 192.168.1.1, trebuie să înmulțiți 168 cu 65536 și obțineți 11010048.
Pasul 3
Înmulțiți al treilea octet cu 256 la prima putere - adică cu numărul 256. Dacă convertiți adresa IP 192.168.1.1 în formă lungă, atunci rezultatul acestei multiplicări va fi 256 * 1 = 256.
Pasul 4
Lăsați al patrulea număr neschimbat, ceea ce echivalează cu înmulțirea cu unul. Acest lucru se datorează faptului că, dacă ridicați numărul 256 (sau orice alt număr) la puterea zero, obțineți 1. În adresa IP 192.168.1.1, rezultatul înmulțirii va fi 1 * 1 = 1.
Pasul 5
Adăugați toate cele patru rezultate ale înmulțirii împreună. Pentru exemplul luat în considerare aici, suma va arăta astfel: 3232235777.
Pasul 6
Când programați în PHP, utilizați funcția gata pregătită ip2long pentru a traduce o adresă IP într-o formă lungă. O funcție similară ca scop poate fi compusă și inclusă într-un program sau un modul separat într-un alt limbaj de programare.
Pasul 7
Sarcina de a traduce o adresă IP dintr-o formă lungă înapoi într-una scurtă apare mult mai rar. Pentru a face acest lucru, împărțiți adresa lungă la 16777216, iar întreaga parte a rezultatului divizării devine primul octet. Împărțiți restul (nu-l confundați cu partea fracționată) la 65536 pentru a obține al doilea octet și așa mai departe. Pe calculatoarele de inginerie, calculați modulul după cum urmează: [C] primul număr [MOD] al doilea număr [=]. Cele mai simple calculatoare nu au această caracteristică.
Pasul 8
Când scrieți o funcție pentru a efectua o traducere inversă într-un anumit limbaj de programare, utilizați funcții pentru divizarea numerelor întregi și calcularea restului diviziunii. De exemplu, în Pascal se numesc div și respectiv mod. Un fragment al programului pentru efectuarea unei astfel de traduceri poate arăta astfel:
octet [1]: = longip div 16777216;
nextnumber: = longip mod 16777216;
octet [2]: = nextnumber div 65536;
nextnumber: = nextnumber mod 65536;
octet [3]: = nextnumber div 256;
octet [4]: = nextnumber mod 256;