Client IP and Host
<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
/**
* IP lekérdezése
**/
function getIp()
{
if(isset($_SERVER))
{
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && validIP($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif(isset($_SERVER['HTTP_CLIENT_IP']) && validIP($_SERVER['HTTP_CLIENT_IP'])){
$ip = $_SERVER['HTTP_CLIENT_IP'];
} else{
$ip = $_SERVER['REMOTE_ADDR'];
}
} else {
if(getenv('HTTP_X_FORWARDED_FOR') && validIP(getenv('HTTP_X_FORWARDED_FOR'))){
$ip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('HTTP_CLIENT_IP') && validIP(getenv('HTTP_CLIENT_IP'))){
$ip = getenv('HTTP_CLIENT_IP');
} else{
$ip = getenv('REMOTE_ADDR');
}
}
return $ip;
}
/**
* IP ellenőrzése
**/
function validIP($ip)
{
if(!empty($ip) && $ip == long2ip(ip2long($ip)))
{
/*
* IANA IPv4 foglalt IP címei.
* http://www.iana.org/assignments/ipv4-address-space
*/
$reserved_ips = array (
array('0.0.0.0','2.255.255.255'),
array('10.0.0.0','10.255.255.255'),
array('127.0.0.0','127.255.255.255'),
array('169.254.0.0','169.254.255.255'),
array('172.16.0.0','172.31.255.255'),
array('192.0.2.0','192.0.2.255'),
array('192.168.0.0','192.168.255.255'),
array('255.255.255.0','255.255.255.255')
);
foreach ($reserved_ips as $r)
{
$min = ip2long($r[0]);
$max = ip2long($r[1]);
if((ip2long($ip) >= $min) && (ip2long($ip) <= $max))
return false;
}
return true;
} else{
return false;
}
}
/**
* HOST lekérdezése
**/
function getHost($ip = false)
{
if($ip){
return gethostbyaddr($ip);
}else{
return gethostbyaddr( getIp() );
}
}
?><!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="author" content="btamas - http://btamas.hu" />
<title>Your IP & HOST - <?php echo $_SERVER["HTTP_HOST"] ?></title>
<style>
body > div {text-align:center;margin-top:10%}
em {font-size:14px}
input {border:0 none;font-size:40px;text-align:center;outline:0 none}
</style>
</head>
<body>
<div>
<em>Your IP address:</em><br>
<input type="text" value="<?php echo getIp() ?>" onclick="this.focus();this.select()" autofocus="autofocus">
</div>
<div style="margin-top:20px">
<em>Your HOST:</em><br>
<input type="text" value="<?php echo getHost() ?>" onclick="this.focus();this.select()">
</div>
</body>
</html>