curl请求数据时好时坏

先看代码(这是服务器A的代码)

$domain = 'http://s1.caiji.jufengcms.com';

$_url=$_SERVER['REQUEST_URI'];
$url=substr($_url,strripos($_url,"url=")-10);

 var_dump(http_request2($domain.$url));
function http_request2($url, $data = null){
    //创建一个curl资源
    $ssl = stripos($url,'https://') === 0 ? true : false;
    $ch = curl_init($url);
    //设置配置
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    //curl请求返回值保存在变量中,不直接输出,
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    //是get请求,还是post请求
    if(!empty($data)){
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    }
    if ($ssl) {
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    }

    $output = curl_exec($ch);
    if(curl_errno($ch))
    {
        echo 'Curl error: ' . curl_error($ch);
    }
    //curl请求失败时输出
    if($output === false){
        return "请求失败";
    }
    curl_close($ch);
    return $output;
}

服务器B的代码

header('Access-Control-Allow-Origin: *');

$ip_address=getIpAddress();

echo json_encode($ip_address);


function getIpAddress(){
    //ip是否来自共享互联网
    if (!empty($_SERVER['HTTP_CLIENT_IP'])){
        $ip_address = $_SERVER['HTTP_CLIENT_IP'];
    }
    //ip是否来自代理
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
        $ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    //ip是否来自远程地址
    else{
        $ip_address = $_SERVER['REMOTE_ADDR'];
    }
    return $ip_address;
}

暂时只是让B获取到A的IP,代码量挺少的
只是访问服务器A的时候很不稳定,不知道为啥,时好时坏的
好的时候
图片.png
坏的时候
图片.png
感觉莫名其妙,求大佬指教

阅读 3.7k
1 个回答

这个是你们DNS解析服务器的问题,对s1.caiji.jufengcms.com做一下host绑定吧
如通过PING获取到该域名地址为211.149.134.76

ping s1.caiji.jufengcms.com 
64 bytes from 211.149.134.76: icmp_seq=1 ttl=52 time=48.185 ms

在linux则是添加一行211.149.134.76 s1.caiji.jufengcms.com在/etc/hosts是末尾行就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题