之前看到让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>
山寨完成。