![]() |
Вот как вычислить IP
Долго ломал голову, и никак не додумаюсь
Вот смотрите: 2552552 = 0.38.242.232 25525520 = 1.133.125.16 255255200 = 15.54.226.60 2552552000=152.36.218.64 Хотя всё очень легко, допустим имеется адрес 61.130.212.100, нужно представить его в виде числа 61 умножить на 256 в кубе = 1023410176 130 умножить на 256 в квадрате = 8519680 212 умножить на 256 = 54272 ну а 100 мы так и оставим посчитаем сумму полученных значений 1023410176+8519680+54272+100 = 1031984228 = 61.130.212.100 А вот как провести обратные расчеты? ну из числа получить IP |
Обратно тому что вы написали.
2552552000/256^3=152 отбрасываем дробную часть 2552552000-152*256^3=2415168 2415168/256^2=36 2415168-36*256^2=55872 55872/256=218 55872-218*256=64 |
DedAlex, спасибо, как-то я не сообразил.
|
В общем чтобы каждый раз так не считать (а то взрыв мозга можно заработать), написал скриптик
|
McLotos, для компьютерных расчетов, это не самый оптимальный алгоритм. Тут можно использовать BitAND и BitShift.
IP в число: Код:
$IP = BitShift($octet1, -24) + BitShift($octet2, -16) + BitShift($octet3, -8) + $octet4 Код:
$octet1 = BitAND(255, BitShift($IP, 24)) |
Время: 08:48. |
Время: 08:48.
© OSzone.net 2001-