JohnCMS 7.0.0

Тема закрыта
19.26K
.
¯\_(ツ)_/¯
# AlkatraZ (21.02.2017 / 23:26)
Ты имеешь в виду, что и у себя и у других онлайн посетителей айпишники по нулям?
Да. Айпи и браузер не определяется.
.
# PaRtiZzaN (21.02.2017 / 23:57)
Да. Айпи и браузер не определяется.
по твоей ссылке показывает и ип и браузер
.
¯\_(ツ)_/¯
# ramzes (22.02.2017 / 00:00)
по твоей ссылке показывает и ип и браузер
Я знаю

На сайте не показывает
.
PaRtiZzaN, 0.0.0.0 может показываться в случае, когда значение, передаваемое в long2ip, выходит за пределы int. Тогда оно преобразуется в строку, а со строками long2ip не работает.
Это может возникнуть при нескольких причинах:
1. Используется 32-битная сборка php или сам сервер на x86.
2. Сервер и php 64-битные, но IP хранится в MySQL как тип int, а не unsigned int или bigint.
Но если именно все IP так показываются, тогда проблема в чём-то другом. Посмотри, что приходит в long2ip.
.
Ей 25
aNNiMON, в Джоне продумано это. Тут используется:
sprintf("%u", ip2long($ip))
Т.Е. при любом раскладе мы получим нормальный ИП.
.
ValekS
Ей 25
aNNiMON, а, ты именно про long2ip, не ip2long. Да, тут просто функция юзается. В комментариях на пхп.нет к этой функции увидел след.конструкции:
function long2Ip32bit($ip){ 
   return long2ip((float)$ip); 
}

И такую:
function convertIpToString($ip) 
    { 
        $long = 4294967295 - ($ip - 1); 
        return long2ip(-$long); 
    }
.
ValekS, да, оба варианта с float должны работать. И я не прав был, что при выходе за границы int, число переводится в строку. Не в строку, а во float.
.
Nurdaulet, че за сайт у тя?
.
¯\_(ツ)_/¯
# aNNiMON (22.02.2017 / 01:58)
ValekS, да, оба варианта с float должны работать. И я не прав был, что при выходе за границы int, число переводится в строку. Не в строку, а во float.
Значит в бд установлен не верный тип?
.
¯\_(ツ)_/¯
Вот что в бд было
Прикрепленные файлы:
Всего: 740