Преобразование ip в integer

Печать RSS
393

Д
Автор
Пришелец
0
Необходимо преобразовать ip в integer тип спомощью функции ip2long ,но она бывает выдает отрицательное значение. Где то видел как это исправляют, но не могу найти. Подскажите плиз?
Д
Автор
Пришелец
0
Нашел smile
$ip = ip2long($_SERVER['REMOTE_ADDR']);
if($ip < 0) $ip += 4294967296;

Пацак
0
или просто
$ip = (int)$ip;
Д
Автор
Пришелец
0
3. неа
у тип integer максимальное значение 2147483647
М

Землянин
0
я ваще делаю что-то вроде этого
function get_int_ip($ip) {
	$ips = split("\.", $ip);
	return $ips[3] + $ips[2] * 256 + $ips[1] * 256 * 256 + $ips[0] * 256 * 256 * 256;
}
Д
Автор
Пришелец
0
5. читай 2й пост
если нужно обратно из int в ip функция long2ip()
С

Кодер
0
3, (int) возвращает отрицательное значение, если число отрицательное, а чтобы получить модуль числа юзай abs()
Д
Автор
Пришелец
0
7. про модуль верно, но вот что получается:
$ip = "192.168.100.68";
$ip = ip2long($ip);
if($ip<0) $ip = abs($ip);
echo long2ip($ip);
скрипт выводит 63.87.155.188 значит модуль нельзя использовать.
с проблемой разобрался еще во 2 посте.
тему можно закрывать

Пацак
0
или как делает Вантуз
$ip = explode('.', $_SERVER['REMOTE_ADDR']);
$ips = $ip[0].$ip[1].$ip[2].$ip[3];
P

Пришелец
0
a просто заменить точку западло? гг
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск