btamas86
12/20/2016 - 2:22 PM

Client IP and Host

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 &amp; 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>