NexusPHP支持双栈协议(ipv4/ipv6)

关于如何架设PT请参考:NexusPHP架设PT服务站点教程

安装完成后发现可以局域网内可以做种,但是外网就不行了,查看种子下载地址列表会显示可连接性为否,查看了announce.php文件,可连接性由这段代码决定

    $sockres = @pfsockopen($ip, $port, $errno, $errstr, 5);
    if (!$sockres)
    {
        $connectable = "no";         //不可连接
    }
    else
    {
        $connectable = "yes";       //可连接
        @fclose($sockres);
    }

 

 我查看了php参考手册pfsockopen函数,这里只能对ipv4支持,如果要支持ipv6可以改成如下形式

if (strlen( $ip ) > 15)$protocol==6;
if($protocol==6);    //判断是否为ipv6地址
        $sockres = @pfsockopen("tcp://[".$ip."]",$port,$errno,$errstr,5);
    else
        {
$sockres
= @pfsockopen($ip,$port,$errno,$errstr,5);
}
if (!$sockres) { $connectable = "no"; } else { $connectable = "yes"; @fclose ( $sockres ); }

 

参考资料:http://blog.chinaunix.net/uid-93477-id-3249521.html

posted @ 2013-05-17 21:48  茗迹周  阅读(771)  评论(0编辑  收藏  举报