Вообщем суть проблемы: Есть CMS. Пишет лог кто когда входил и с какого IP. Супет ошибками типа:
Warning: long2ip() expects parameter 1 to be integer, string given in......
Гуглил! Но как быть если у меня хостер х32 - ответа не нашел.
Зато изучил что выше 127,255,255,255 эта функция не может (на 32 битных системах).
Нужны костыли.
Вот кусок кода где вывод эти самых айпи:
$ip = long2ip($user['ip']);
if ($this->user->rights && isset($user['ip_via_proxy']) && $user['ip_via_proxy']) {
$out .= '<b class="red"><a href="' . $homeurl . '/admin/index.php?act=search_ip&ip=' . $ip . $hist . '">' . $ip . '</a></b>';
$out .= ' [<a href="' . $homeurl . '/admin/index.php?act=ip_whois&ip=' . $ip . '">?</a>]';
$out .= ' / ';
$out .= '<a href="' . $homeurl . '/admin/index.php?act=search_ip&ip=' . long2ip($user['ip_via_proxy']) . $hist . '">' . long2ip($user['ip_via_proxy']) . '</a>';
$out .= ' [<a href="' . $homeurl . '/admin/index.php?act=ip_whois&ip=' . long2ip($user['ip_via_proxy']) . '">?</a>]';
} elseif ($this->user->rights) {
$out .= '<a href="' . $homeurl . '/admin/index.php?act=search_ip&ip=' . $ip . $hist . '">' . $ip . '</a>';
$out .= ' [<a href="' . $homeurl . '/admin/index.php?act=ip_whois&ip=' . $ip . '">?</a>]';
} else {
$out .= $ip . $iphist;
}
if (isset($arg['iphist'])) {
$iptotal = $this->db->query("SELECT COUNT(*) FROM `cms_users_iphistory` WHERE `user_id` = '" . $user['id'] . "'")->fetchColumn();
$out .= '<div><span class="gray">' . _t('IP History', 'system') . ':</span> <a href="' . $homeurl . '/profile/?act=ip&user=' . $user['id'] . '">[' . $iptotal . ']</a></div>';
}