То, что я хочу сделать, это создать простую страницу, может быть, в php, которая показывает только адрес IPV4.
Так должен выглядеть этот сайт »http://myexternalip.com/raw«но не показывать IPV6 только IPV4.
Этот сайт показывает мой адрес IPV6, и я знаю, что у меня оба работают, потому что Whatsmyip.com показывает мой IPv4.
Спасибо за любую помощь всем!
Самый простой способ получить 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;
}
Создайте файл 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