您的位置:首页 > 编程语言 > PHP开发

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

2013-05-17 22:27 901 查看
关于如何架设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)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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: