Мне нужно создать простую веб-страницу, которая показывает только публичный IPV4-адрес в окне браузера.

То, что я хочу сделать, это создать простую страницу, может быть, в php, которая показывает только адрес IPV4.

Так должен выглядеть этот сайт »http://myexternalip.com/raw«но не показывать IPV6 только IPV4.

Этот сайт показывает мой адрес IPV6, и я знаю, что у меня оба работают, потому что Whatsmyip.com показывает мой IPv4.

Спасибо за любую помощь всем!

-3

Решение

Самый простой способ получить IP-адрес посетителя / клиента — использовать переменные $ _SERVER [‘REMOTE_ADDR’] или $ _SERVER [‘REMOTE_HOST’].

Однако иногда это не возвращает правильный IP-адрес посетителя, поэтому мы можем использовать некоторые другие переменные сервера для получения IP-адреса.

Ниже обе функции эквивалентны с разницей только в том, как и откуда получены значения.

getenv () используется для получения значения переменной окружения в PHP.

// Function to get the client IP address
function get_client_ip() {
$ipaddress = '';
if (getenv('HTTP_CLIENT_IP'))
$ipaddress = getenv('HTTP_CLIENT_IP');
else if(getenv('HTTP_X_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_X_FORWARDED_FOR');
else if(getenv('HTTP_X_FORWARDED'))
$ipaddress = getenv('HTTP_X_FORWARDED');
else if(getenv('HTTP_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_FORWARDED_FOR');
else if(getenv('HTTP_FORWARDED'))
$ipaddress = getenv('HTTP_FORWARDED');
else if(getenv('REMOTE_ADDR'))
$ipaddress = getenv('REMOTE_ADDR');
else
$ipaddress = 'UNKNOWN';
return $ipaddress;
}

$ _SERVER — это массив, который содержит переменные сервера, созданные веб-сервером.

// Function to get the client IP address
function get_client_ip() {
$ipaddress = '';
if ($_SERVER['HTTP_CLIENT_IP'])
$ipaddress = $_SERVER['HTTP_CLIENT_IP'];
else if($_SERVER['HTTP_X_FORWARDED_FOR'])
$ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
else if($_SERVER['HTTP_X_FORWARDED'])
$ipaddress = $_SERVER['HTTP_X_FORWARDED'];
else if($_SERVER['HTTP_FORWARDED_FOR'])
$ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
else if($_SERVER['HTTP_FORWARDED'])
$ipaddress = $_SERVER['HTTP_FORWARDED'];
else if($_SERVER['REMOTE_ADDR'])
$ipaddress = $_SERVER['REMOTE_ADDR'];
else
$ipaddress = 'UNKNOWN';
return $ipaddress;
}
0

Другие решения

Создайте файл ip.php и поместите в него следующий код:

<?php
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;

Мой ответ основан на этом ответе на похожий вопрос:
https://stackoverflow.com/a/55790/326016

0

По вопросам рекламы [email protected]