Как сделать из IP адреса десятичный вид
Десятичный вариант IP адреса расчитывает для уменьшения его представления для хранения в БД. Также это позволяет базе данных легко индексировать такое представление айпи адресов.
Процесс трансформации ip в dex вид очень просто.
например имеем адрес a.b.c.d
так как максимальное число каждой буквы может быть 256 (в ip v4) то нам нужно перемножить 256 четыре раза, добавляя после каждого перемножения a, затем b, c и d.
Например ip адрес 199.203.220.184 в десятичной записи выглядит так: 3352026296
В PHP есть функция ip2long($ip) которая это делает автоматически.
Математически это выглядит так, код для пхп:
function myip2long2($ip){
$d = 0.0;
$b = explode(".", $ip,4);
for ($i = 0; $i < 4; $i++) {
$d *= 256.0;
echo "<br>i=",$i," d=",$d;
$d += $b[$i];
echo "<br>i=",$i," d=",$d;
};
echo "<br>";
return $d;
}
Оставить свой ответ: