我有以下功能(在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 **
,这一切都有效