让IP绚烂起来

之前看到让ip地址对应出不同的颜色,自己以前也考虑过,ipv4正好可以对应颜色的RGBA,当然A得稍微处理一下。正好可以整出独一无二的颜色。看新闻时正好看到处于试验阶段的Pretty IP ,看起来不错的样子,姑且山寨一份。至于用途,给匿名用户一个标志?暂时想不出多的什么。

上代码。

<?php
function getIP()
{
  if ($_SERVER["HTTP_X_FORWARDED_FOR"])
    $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
  else if ($_SERVER["HTTP_CLIENT_IP"])
    $ip = $_SERVER["HTTP_CLIENT_IP"];
  else if ($_SERVER["REMOTE_ADDR"])
    $ip = $_SERVER["REMOTE_ADDR"];
  else if (getenv("HTTP_X_FORWARDED_FOR"))
    $ip = getenv("HTTP_X_FORWARDED_FOR");
  else if (getenv("HTTP_CLIENT_IP"))
    $ip = getenv("HTTP_CLIENT_IP");
  else if (getenv("REMOTE_ADDR"))
    $ip = getenv("REMOTE_ADDR");
  else
    $ip = "Unknown";
  return $ip;
}

function ip2hex($ipNum)
{
	for ($i=0; $i < 3; $i++) { 
		$hexIp .= dechex($ipNum[$i]);
	}
	return $hexIp;
}

function ip2Rgb($ipNum)
{
	$rgbIp = $ipNum[0] . ',' . $ipNum[1] . ',' . $ipNum[2];
	return $rgbIp;
}
$ipArray = getIP();
$ip = explode(',', $ipArray, 2);
$realIp = $ip[0];
$primaryIp = explode(".", $realIp);
$complementaryIp = $primaryIp;
for ($i=0; $i < 4; $i++) { 
	$complementaryIp[$i] = 255 - $complementaryIp[$i];
}

function ipAddress($ip)
{
	//第三方的数据
	$addressContent = file_get_contents("http://wap.ip138.com/ip_search.asp?ip=$ip");
	$pattern = "/查询结果:\S* \S*<\/b>/";
	preg_match($pattern, $addressContent, $matchs);
	$address = preg_replace("/查询结果:/", '', $matchs[0]);
	$address = preg_replace("/<\/b>/", '', $address);
	return $address;
}

$primaryHex = ip2hex($primaryIp);
$primaryHex = strtoupper($primaryHex);
$primaryRgb = ip2Rgb($primaryIp);

$complementaryHex = ip2hex($complementaryIp);
$complementaryHex = strtoupper($complementaryHex);
$complementaryRgb = ip2rgb($complementaryIp);

$address = ipAddress($realIp);
?>
<!DOCTYPE html>
<html>
<head>
	<title>Pretty IP!</title>
	<meta charset="utf-8"/>
	<meta name="viewport" content="width=device-width"/>
	<style type="text/css">
	body {
		margin: 0;
		padding: 0;
		height: 100%;
		width: 100%;
		text-align: center;
    font-family: 'Roboto',sans-serif;
    color: rgb(199, 212, 184);
	}
	ul {
		margin: 0;
		padding: 0;
		width: 100%;
		height: 100%;
		position: absolute;
		top: 0;
		left: 0;
	}
	li {
		list-style: none outside none;
		width: 50%;
		height: 100%;
		display: block;
		float: left;
	}
	li div {
		position: relative;
		top: 50%;
	}
	span {
		display: block;
	}
	#primary {
		background-color: #<?php echo $primaryHex;?>;
	}
	#complementary {
		background-color: #<?php echo $complementaryHex;?>;
	}
	#ip_address {
		position: relative;
		top: 30px;
		background-color: white;
		border-radius: 10px;
    color: black;
    width: 15em;
    margin: auto;
	}
	.name {
		font-size: 1.2em;
	}
	#ip {
		font-size: 2em;
	}
	footer {
		position: absolute;
		bottom: 0;
		background-color: rgb(35, 31, 32);
		width: 100%;
	}
	#address {
		text-align: center;
	}
	</style>
</head>
<body>
	<ul>
		<li id="primary">
			<div>
				<span class="name">Primary</span>
				<span>HEX:<?php echo $primaryHex;?></span>
				<span>RGB:<?php echo $primaryRgb;?></span>
			</div>
		</li>
		<li id="complementary">
			<div>
				<span class="name">Complementary</span>
				<span>HEX:<?php echo $complementaryHex;?></span>
				<span>RGB:<?php echo $complementaryRgb;?></span>
			</div>
		</li>
	</ul>
	<div id="ip_address"><span>你的ip是:</span><span id="ip"><?php echo $realIp;?></span></div>
	<footer>
		<div id="address"><?php echo $address;?></div>
	</footer>
</body>
</html>


山寨完成。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值