PHP При каких обстоятельствах приходит пустой IP человека?
============================================================

 Собственно вопрос весь в заголовке.  

Но если подробнее - есть некий код, который при авторизации человека - пишет с какого IP он сидит.  

В 80% пишется нормально, но в 20% - IP приходит пустым. Почему? Как добиться этого? 

 Тут есть два варианта. Первый — пользователь заходит через IPv6, а скрипт пытается преобразовать его адрес с помощью ip2long, который корректно понимает только IPv4. Второй — пользователь заходит через proxy, который что-то передает в X-Forwarded-For, что некорректно преобразовывается в IP-адрес (например, передает не IP, а доменное имя).   

Чтобы этого не было, нужно сохранять IP не как число, а как строку, причем сохранять туда и $_SERVER['REMOTE_ADDR'], и $\_SERVER['HTTP\_X\_FORWARDED\_FOR'] (тогда как многие скрипты при наличии второго REMOTE\_ADDR просто отбрасывают).