□PHPでIPv4かIPv6かの判定
こ、これでいいのか!?!?
<?
#
# アクセス元アドレスがIPv4かIPv6か判定する
#
$ADDR = $_SERVER["REMOTE_ADDR"];
# REMOTE_ADDRがIPv4フォーマットなら
if (preg_match("/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/", $ADDR))
{
$IPKIND = "IPv4";
}
elseif (preg_match("/^[a-f0-9]{1,4}:[a-f0-9]{1,4}:[a-f0-9]{1,4}:[a-f0-9]{1,4}:[a-f0-9]{1,4}:[a-f0-9]{1,4}:[a-f0-9]{1,4}:[a-f0-9]{1,4}$/", $ADDR))
{
$IPKIND = "IPv6";
}
#
print <<<EOF
<HTML>
<HEAD>
<TITLE>IPv4/IPv6 確認サイト | FVG-ON.NET</TITLE>
<LINK href="site.css" rel=stylesheet type=text/css>
</HEAD>
<BODY CLASS="content12">
<BR>
REMOTE_ADDR = <FONT CLASS="content18">{$ADDR}, You are {$IPKIND}!</FONT>,
<BR>
</BODY>
</HTML>
EOF;
?>