卷曲IPv6 / 48地址PHP - 接口

时间:2014-02-20 20:30:55

标签: php linux networking curl ipv6

我有以下功能(在functions.php中,例如......):

function url_get_contents($url, $ip){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_INTERFACE, $ip);
    curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V6);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

我需要将此函数挂载到我的接口(sit1)上挂载/ 48中的IPv6地址。

以下是我的/ etc / sysconfig / network-scripts / ifcfg-sit1:

DEVICE=sit1
BOOTPROTO=none
ONBOOT=yes
IPV6INIT=yes
IPV6TUNNELIPV4=**.***.**.***
IPV6TUNNELIPV4LOCAL=***.**.**.**
IPV6ADDR=****:***:*:***::*/64
IPV6ADDR_SECONDARIES="****:***:*:***::/48"
IPV6_DEFAULTGW=****:***:*:***::*

显然在上面的代码中,IP地址已经加星标了。

然而,在php:

<?php
require_once('functions.php');
function randomString(){
$length = 16;
$chars = "0123456789abcdef";
$str = "";    
for($i = 0; $i < $length; $i++){ $str .= $chars[mt_rand(0, strlen($chars) - 1)]; }
$str = str_split($str, 4); $str = implode(":", $str);
return $str;
}
$url="http://www.whatismyipv6.com";
$ip="****:***:*:***::" . randomString();
$res=url_get_contents($url, $ip);
print($res);
exit();
?>

这似乎不起作用(地址不一定可能绑定??)。

任何人都知道如何让它发挥作用?

谢谢!

**注意:如果我手动添加IP / 128 in ifcfg-sit1 **

,这一切都有效

0 个答案:

没有答案