Как определить ip пользователя на php?

Пользователь

от gussie.jones , в категории: PHP , 2 года назад

Как определить ip пользователя на php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от gage , 2 года назад

@gussie.jones Вы можете получить IP адрес из глобального массива $_SERVER на PHP и небольшой пример:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<?php

$ip = $_SERVER['REMOTE_ADDR'];

if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}

echo "Ваш IP: " + $ip;


Вы можете подробнее прочитать о глобальном массиве $_SERVER в документации https://www.php.net/manual/ru/reserved.variables.server.php. Данный глобальный массив хранит множество полезных данных.

Пользователь

от hobart.rath , год назад

@gussie.jones 

На PHP можно определить IP-адрес пользователя с помощью суперглобальной переменной $_SERVER['REMOTE_ADDR']. Однако, следует учитывать, что этот метод не всегда срабатывает корректно, так как пользователь может использовать прокси-сервер, который маскирует реальный IP-адрес. В таком случае $_SERVER['REMOTE_ADDR'] будет содержать IP-адрес прокси-сервера, а не реального клиента.


Для того, чтобы улучшить точность определения IP-адреса пользователя, можно использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$ip = '';

if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
    $ip = $_SERVER['REMOTE_ADDR'];
}

echo $ip;


В этом коде сначала проверяется значение переменной $_SERVER['HTTP_CLIENT_IP'], которая содержит IP-адрес клиента, если он использует прокси-сервер. Затем проверяется значен