Автор оригинала: David Wong.
Давайте сначала поймем значение переменной:
$_SERVER [‘REMOTE_ADDR’]: IP-адрес компьютера пользователя, просматривающего текущую страницу
$_SERVER [‘HTTP_CLIENT_IP’]: IP-адрес клиента
$_SERVER [‘HTTP_X_FORWARDED_FOR’]: Шлюз компьютера пользователя, просматривающего текущую страницу
$_SERVER [‘HTTP_X_REAL_IP’]: Получить реальный IP-адрес клиента в режиме прокси-сервера nginx
/** * Get the client IP address */ function real_ip() { $ip = $_SERVER['REMOTE_ADDR']; if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) { foreach ($matches[0] AS $xip) { if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) { $ip = $xip; break; } } } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif (isset($_SERVER['HTTP_CF_CONNECTING_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CF_CONNECTING_IP'])) { $ip = $_SERVER['HTTP_CF_CONNECTING_IP']; } elseif (isset($_SERVER['HTTP_X_REAL_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_REAL_IP'])) { $ip = $_SERVER['HTTP_X_REAL_IP']; } return $ip; }
резюме
Выше приведен пример кода PHP для получения IP-адреса клиента, введенного Xiaobian. Я надеюсь, что это будет вам полезно. Если у вас есть какие-либо вопросы, пожалуйста, оставьте мне сообщение. Сяобянь ответит вам вовремя.
Оригинал: “https://developpaper.com/php-method-instance-code-to-get-client-ip-address/”