connect('localhost', 11211) or die ("Could not connect");
// セッションキー生成
$key=md5(uniqid(rand(), true).$ip.time());
// セッションキーのデータ生成
$value="UserName=".$userName."\r\n";
$value.="RemoteIP=".$ip."\r\n";
// store value for the key in memcache deamon
$memcache->set($key,$value,false,$expiry);
// set cookie session
setcookie("AuthSessionKey",$key,0,"/aipo","(ドメイン名)",true);
header("location: https://(ドメイン名)/aipo/");
exit;
function validip($ip)
{
if (!empty($ip) && ip2long($ip)!=-1)
{
$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;
}
return false;
}
function getip()
{
if (validip($_SERVER["HTTP_CLIENT_IP"]))
{
return $_SERVER["HTTP_CLIENT_IP"];
}
if (validip($_SERVER["HTTP_FORWARDED_FOR"]))
{
return $_SERVER["HTTP_FORWARDED_FOR"];
}
elseif (validip($_SERVER["HTTP_FORWARDED"]))
{
return $_SERVER["HTTP_FORWARDED"];
}
return $_SERVER["REMOTE_ADDR"];
}
?>