1

希望你能帮助...

我们已经完美地设置和运行了仙人掌,我们想给我们的客户提供仙人掌图,所以我们有一个脚本来做这件事。然而,它未能拉入图表。该脚本已设置并与我们的仙人掌交谈,但我们没有得到实际图形的显示。

您可以在这里看到问题 - http://noc.dediport.com/cacti/switchporttranslate.php?host4&switchport=Fa0/1&period=daily

那应该显示一个图表,这是我从脚本创建者那里得到的响应:

下一步是看仙人掌的一面。http://noc.dediport.com/cacti/switchporttranslate.php?host4&switchport=Fa0/1&period=daily显示 PHP 没有被解释,所以源被返回。恐怕我们无法从返回的结果中判断原因,您需要从日志中检查原因。

尽管它们很有帮助,但我仍然没有深入了解这个问题。我确信这是一个简单的错误,但我将不胜感激。

仅供参考 Cacti 在 centos 6.5 上运行

4

2 回答 2

0

这是用于在所需网站/门户网站上为客户端拉仙人掌图的 curl 示例代码注意您需要保留会话并查看身份验证期间使用的任何其他变量,将其设置为成功登录系统

$username = 'dipen';
    $password = 'yourpassword';
    $postinfo = 'login_username='.$username.'&login_password='.$password;

    $url1 = 'https://yourhost/graph.php?action=view&rra_id=all&local_graph_id=5813';
    $url = "https://yourhost/";

    //path to save cookie info temporarily 
    $path = base_url()."img/ctemp";
    $cookie = "cookie.txt";  

    $postdata = "login_username=".$username."&login_password=".$password."&action=login";
    $ch =curl_init();
    curl_setopt($ch,CURLOPT_URL, $url);
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
    curl_setopt($ch,CURLOPT_TIMEOUT, 60);
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION, 0);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch,CURLOPT_COOKIESESSION, true);
    curl_setopt($ch,CURLOPT_COOKIEJAR, $cookie);
     curl_setopt($ch,CURLOPT_COOKIEFILE, $path);
    curl_setopt ($ch, CURLOPT_REFERER, $url);
    curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
    curl_setopt ($ch, CURLOPT_POST, 1); 
    $result = curl_exec ($ch);
    if (curl_error($ch)) {
        echo curl_error($ch);
    } 
    //var_dump($result);  


    curl_setopt($ch, CURLOPT_URL, $url1);
    curl_setopt($ch, CURLOPT_POST, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "");
    $answer = curl_exec($ch);
    if (curl_error($ch)) {
        echo curl_error($ch);
    }

    if(!empty($corporate_graph_id))
    {
        echo '<img src="https://yourhost/graph_image.php?action=view&local_graph_id=$corporate_graph_id&rra_id=5" />';

        echo '<img src="https://yourhost/graph_image.php?action=view&local_graph_id=5813&rra_id=1" />';

        echo '<img src="https://yourhost/graph_image.php?action=view&local_graph_id=5813&rra_id=2" />';

        echo '<img src="https://yourhost/graph_image.php?action=view&local_graph_id=5813&rra_id=3" />';

        echo '<img src="https://yourhost/graph_image.php?action=view&local_graph_id=5813&rra_id=4" />'; 
    }
    curl_close($ch);
于 2015-06-15T11:25:22.233 回答
0

我之前的示例中存在一些链接问题,所以我在服务器上下载了图像并从那里显示它是我的代码

     $username = 'dipen';
    $password = 'yourpassword';

    $url = "https://graph.yourdomain.com/";
    $cookie = "cookie.txt";  
    $path = "tempcookie";

    $postdata = "login_username=".$username."&login_password=".$password."&action=login";

    $ch =curl_init();
    curl_setopt($ch,CURLOPT_URL, $url);
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
    $agent = $_SERVER["HTTP_USER_AGENT"];
    curl_setopt($ch,CURLOPT_USERAGENT, $agent);
    curl_setopt($ch,CURLOPT_TIMEOUT, 60);
    curl_setopt($ch,CURLOPT_COOKIESESSION, true);
    curl_setopt ($ch,CURLOPT_REFERER, $url);
    curl_setopt ($ch,CURLOPT_POST, 1); 
    curl_setopt ($ch,CURLOPT_POSTFIELDS, $postdata);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch,CURLOPT_COOKIEJAR, $path.'/'.$cookie);
    curl_setopt($ch,CURLOPT_COOKIEFILE, base_url().$path.'/'.$cookie); 
    $result = curl_exec ($ch);
    if (curl_error($ch)) {
        echo curl_error($ch);
    }

    if(!empty($corporate_graph_id))
    {
        $corporate_graph_id = $corporate_graph_id[0]['grpah_id'];

        $url1 =' https://graph.yourdomain.com/graph_image.php?action=view&local_graph_id='.$corporate_graph_id.'&rra_id=3';

        curl_setopt($ch, CURLOPT_URL, $url1);
        curl_setopt($ch, CURLOPT_POST, false);
        curl_setopt($ch, CURLOPT_POSTFIELDS, "");
        curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
        $answer = curl_exec($ch);
        if (curl_error($ch)) {
            echo curl_error($ch);
        }

        $fp = fopen($path.'/'.$corporate_graph_id.'.jpg','w');
        fwrite($fp, $answer);
        fclose($fp);


        $img_path = base_url().$path.'/'.$corporate_graph_id.'.jpg'; 

        echo '<img src="'.$img_path.'" /><br/>';

    }
    curl_close($ch);
于 2015-06-16T07:39:31.013 回答