首页 > 解决方案 > 需要有关 Mikrotik PHP API 的帮助

问题描述

目前我正在开发一个为 ISP 开发的 Web 应用程序。我正在使用 Mikrotik PHP API 创建防火墙连接日志。我将所有条目添加到 MySql 数据库中。当我在笔记本电脑上基于 Windows 的 XAMPP 服务器上使用此脚本时一切正常,但是当我上传 Ubuntu 的此脚本时,它会显示

“此页面无法正常工作”... HTTP 错误 500...

其他$API->write();运行良好但此命令不起作用的命令:

$API->comm("/ip/firewall/connection/print");

我在我的服务器机器上使用 Ubuntu 16.4。上面提到的命令在 XAMPP (Windows) 中工作,但在 LAMP (Ubuntu 16.4) 中不工作。

完整代码在这里:

<?php
    include_once('key.php');
    $mikrotik_ip        =       $ip;  
    $mikrotik_username  =       $user;  
    $mikrotik_password  =       $pass;

    if ($API->connect($mikrotik_ip, $mikrotik_username,$mikrotik_password)) {
        $log = $API->comm("/ip/firewall/connection/print");

        $clog = count($log);
        for($a=0;$a<=$clog;$a++){
            $state      =   isset($log[$a]['tcp-state']) ? $log[$a]['tcp-state'] : '';
            $src        =   $log[$a]['src-address'];
            $src_rep    =   $log[$a]['reply-src-address'];
            $dst        =   $log[$a]['dst-address'];
            $dst_rep    =   $log[$a]['reply-dst-address'];
            $prot       =   $log[$a]['protocol'];

            mysqli_query($connect,"insert into cts(cts_id,src_address,reply_src_address,dst_address,reply_dst_address,protocol,tcp_state,date) values('','$src','$src_rep','$dst','$dst_rep','$prot','$state','".date("Y-m-d H:i:s")."')") or die(mysqli_error());
        }
        mysqli_close($connect);
    }else{
        echo 'Not Connected';
    }
?>

标签: phpapimikrotik

解决方案


推荐阅读