Linux Install Memo

サーバー管理者によるLinux関連ソフトのインストールメモ

Home » □PHPでIPv6アドレスの補完

□PHPでIPv6アドレスの補完

こんなやり方でいいんだろうか?

PECLの方にはライブラリがあるみたいだけど、ライブラリまでは要らないのでちょっと作りました。

<?
$IPADDR = ‘::123:F199’;
// ——————–
// ipv6addr complement
// ——————–
function ipv6complement($IPADDR)
{
    // 先頭に::があったら、それは:に置換した上で、:で別ける
    $IPARRAY = split(‘:’, preg_replace(‘/^::/’, ‘:’, $IPADDR));
   
    // 補完しなければならない数を取得
    $IPFOLLOW = 8 – count($IPARRAY);
   
    // 補完後のIPアドレス表記を初期化
    $IPCOMP = ”;
   
    // 補完するアドレスをケツから生成
    for ($IPNUM = count($IPARRAY)-1 ; $IPNUM >= 0; $IPNUM –)
    {
        // 文字があるなら
        if (strlen($IPARRAY[$IPNUM]))
        {
            // そのまま連結
            $IPCOMP = strval($IPARRAY[$IPNUM]).’:’.$IPCOMP;
        }
        // ないなら
        else
        {
            // 補完しなければならない分だけ
            for ($FNUM = $IPFOLLOW; $FNUM >= 0 ; $FNUM –)
            {
                // 0:を追加
                $IPCOMP = ‘0:’.$IPCOMP;
            }
        }
    }
    // 最後の:を取っ払って
    return preg_replace(‘/:$/’, ”, $IPCOMP);
}

print “もともとのIPアドレスは”.$IPADDR.”です\n”;
print “→補完後のIPアドレスは”.ipv6complement($IPADDR).”です\n”;

?>

ちゃんと動くからいいか。(^-^;

 

Name of author

Name: admin

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です