Вы можете использовать следующее:
$server_address = $_SERVER['SERVER_ADDR'];
$port_used = $_SERVER['SERVER_PORT'];
$ip_address = $_SERVER['REMOTE_ADDR'];
// on my test machine this gives the following results:
$server_address = 127.0.0.1
$port_used = 80
$ip_address = 127.0.0.1
<ч />
Отредактировано: для включения аспекта геолокации вопроса, который я не заметил до тех пор, пока не представил исходный ответ.
Вместо того, чтобы повторять ответы, найденные в других местах, я сначала сошлюсь на этот (хорошо отвеченный) ТАК вопрос:
google-geolocation-api-library , а затем на страницу результатов Google с условиями поиска геолокация php-сайта: stackoverflow.com , которая ссылается на многие другие, вероятно, релевантные ответы, которые может лучше ответить на ваши вопросы, чем я могу.