Инструкция
1
Первый октет IP-адреса умножьте на число 16777216, или, что то же самое, 256 в третьей степени. Например, если речь идет об IP-адресе 192.168.1.1 (он часто встречается в небольших локальных сетях), то после умножения числа 192 на 16777216 получится 3221225472.
2
Второе число умножьте на 65536 - именно столько получится, если 256 возвести во вторую степень. Например, в адресе 192.168.1.1 придется умножить 168 на 65536, и получится 11010048.
3
Третий октет умножьте на 256 в первой степени - то есть, на само число 256. Если вы переводите в длинную форму IP-адрес 192.168.1.1, то результат такого умножения будет равен 256*1=256.
4
Четвертое число оставьте без изменений, что эквивалентно умножению на единицу. Связано это с тем, что если возвести число 256 (или любое другое число) в нулевую степень, то получится 1. В IP-адресе 192.168.1.1 результат умножения составит 1*1=1.
5
Все четыре результата умножения сложите между собой. Для рассматриваемого здесь примера сумма будет выглядеть следующим образом: 3232235777.
6
При программировании на языке PHP воспользуйтесь для перевода IP-адреса в длинную форму готовой функцией ip2long. Аналогичную по назначению функцию можно составить и включить в программу или отдельный модуль на другом языке программирования.
7
Задача перевода IP-адреса из длинной формы обратно в короткую возникает значительно реже. Чтобы это сделать, поделите длинный адрес на 16777216, и целая часть результата деления станет первым октетом. Остаток (не перепутайте его с дробной частью) поделите на 65536, и получится второй октет, и так далее. На инженерных калькуляторах вычисление остатка от деления осуществляйте так: [C] первое число [MOD] второе число [=]. В простейших калькуляторах эта функция отсутствует.
8
При составлении функции для осуществления обратного перевода на том или ином языке программирования пользуйтесь функциями для целочисленного деления и вычисления остатка от деления. Например, в языке Паскаль они называются, соответственно, div и mod. Фрагмент программы для осуществления такого перевода может выглядеть так:

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;