gethostbyaddr вообще про другое, оно по IP(!) получает домен к которому "привязан" этот адрес. Reverse DNS называется.
И это ничего общего с REMOTE_ADDR и получанием IP пользователя не имеет.
это из-за того, что у них стоит Nginx перед Apache
это исправляется на уровне вебсервера как раз, чтобы php получал правильный адрес, а не адрес машины на которой он стоит.