Предположим, что пользовательский ПК IP - 192.168.10.81 (IPv4 в его персональных компьютерах)
Когда этот пользователь просматривает www.mydomain.com
я хочу получить этот IP
от www.mydomain.com/index.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'];
}
$ _SERVER ['REMOTE_ADDR'] - это единственный надежный IP-адрес, который вы получите - он извлекается непосредственно из стека TCP и где установлено текущее соединение. Это означает, что если пользователь подключается через прокси-сервер, вы получите адрес прокси-сервера, а не пользователь.
Любые другие заголовки, основанные на заголовках, ненадежны, поскольку заголовки HTTP тривиальны для подделывания. Вы можете использовать информацию из них, если хотите, до тех пор, пока вы НЕ ДОЛЖНЫ это сделать.
Попробуйте этот код:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$browser = $_SERVER['HTTP_USER_AGENT'];
$referrer = $_SERVER['HTTP_REFERER'];
if ($referred == "") {
$referrer = "This page was accessed directly";
}
echo "<b>Visitor IP address:</b><br/>" . $ip . "<br/>";
echo "<b>Browser (User Agent) Info:</b><br/>" . $browser . "<br/>";
echo "<b>Referrer:</b><br/>" . $referrer . "<br/>";
?>
Вывод выглядит следующим образом:
IP-адрес посетителя: 127.0.0.1
Браузер (User Agent) Информация: Mozilla/5.0 (Windows NT 6.1; rv: 9.0.1) Gecko/20100101 Firefox/9.0.1
Referrer:
$_SERVER['REMOTE_ADDR']
?