IP дарек төрт ондук сандардан турат, алардын ар бири 0дон 255ке чейин болушу мүмкүн. Мындай ар бир сан эки орундуу он алтылык же сегиз биттик экиликке барабар, ошондуктан октет деп аталат. Сценарийлерди жазууда кээде ушул төрт кыска сандарды бир узунга которуу керек.
Нускамалар
1 кадам
IP-даректин биринчи октетин 16777216га, же эквиваленттүү түрдө, үчүнчү кубатка чейин, 256га көбөйт. Мисалы, 192.168.1.1 IP дареги жөнүндө сөз болуп жатса (ал кичинекей локалдык тармактарда көп кездешет), анда 192 санын 16777216га көбөйткөндөн кийин 3221225472 аласыз.
2-кадам
Экинчи санды 65536га көбөйтсөңүз - экинчи күчкө 256 көтөрсөңүз, ошончо акча аласыз. Мисалы, 192.168.1.1 дарегинде сиз 168ди 65536га көбөйтүшүңүз керек жана сиз 11010048 аласыз.
3-кадам
Үчүнчү октетти 256га көбөйтүп, биринчи кубаттуулукка - башкача айтканда, 256 санына өзүңүз керек. Игер 192.168.1.1 IP дарегин узак формага которсоңуз, анда бул көбөйтүүнүн натыйжасы 256 * 1 = 256 болот.
4-кадам
Төртүнчү санын өзгөртпөстөн калтырып коюңуз, бул бирге көбөйтүүгө барабар. Себеби, эгер сиз 256 санын (же башка бир санды) нөлдүк кубаттуулукка көтөрсөңүз, анда 1ге жетесиз: 192.168.1.1 IP дарегинде көбөйтүүнүн натыйжасы 1 * 1 = 1 болот.
5-кадам
Көбөйтүүнүн төрт натыйжасын тең кошуңуз. Бул жерде каралган мисал үчүн, сумма төмөнкүдөй болот: 3232235777.
6-кадам
PHPде программалоодо IP дарегин узун формага которуу үчүн ip2long даяр функциясын колдонуңуз. Максаты боюнча окшош функция түзүлүп, башка программалоо тилиндеги программага же өзүнчө модулга киргизилиши мүмкүн.
7-кадам
IP дарегин узун формадан кыска формага которуу милдети анча-мынча кездешет. Ал үчүн узун даректи 16777216га бөлсөңүз, бөлүнүүнүн натыйжасынын бүт бөлүгү биринчи октетке айланат. Калган бөлүгүн (аны бөлчөк бөлүгү менен чаташтырбаңыз) 65536га бөлүп, экинчи октетти алыңыз жана башкалар. Инженердик эсептегичтерде модулду төмөнкүдөй эсептеңиз: [C] биринчи сан [MOD] экинчи сан [=]. Эң жөнөкөй эсептегичтерде мындай функция жок.
8-кадам
Кайсы бир программалоо тилинде тескери котормону аткарууга арналган функцияны жазууда, бүтүн санды бөлүү жана бөлүүнүн калган бөлүгүн эсептөө функцияларын колдонуңуз. Мисалы, Паскалда аларды тиешелүүлүгүнө жараша div жана mod деп аташат. Мындай котормону жүзөгө ашыруунун программасынын бир бөлүгү төмөнкүдөй болушу мүмкүн:
октет [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;