HEX
Server: Apache/2.4.37 (CentOS Stream) OpenSSL/1.1.1k
System: Linux ysnet.com.tw 4.18.0-553.5.1.el8.x86_64 #1 SMP Tue May 21 05:46:01 UTC 2024 x86_64
User: test (521)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /var/www/net/autodisable.php
<?php
include "routeros_api.php";    // RouterOS API 類別
include "name.php";           // name 對應表
include "mysqllink.php";      // 資料庫連線

header('Content-Type: application/json');

if ($_SERVER['REQUEST_METHOD'] === 'GET') {
    $rosid = $_GET['rosid'] ?? '';
    $nombro = $_GET['pppoeuser'] ?? '';
} else {
    echo json_encode(["status" => "error", "message" => "Invalid request"]);
    exit;
}

if (empty($rosid) || empty($nombro)) {
    echo json_encode(["status" => "error", "message" => "Missing parameters"]);
    exit;
}

// 取得對應社區 RouterOS 的 IP
$fblink = "SELECT * FROM $tbname";
$freslut = $dblink->query($fblink);
$router_ip = "";

if ($freslut) {
    while ($nb = mysqli_fetch_array($freslut)) {
        if ($nb["name"] === $rosid) {
            $router_ip = $nb["address"];
            break;
        }
    }
}

if (empty($router_ip)) {
    echo json_encode(["status" => "error", "message" => "Router IP not found for rosid $rosid"]);
    exit;
}

// 登入 RouterOS 並執行 disable PPPoE user
$API = new RouterosAPI();
$API->debug = false;
$mikrotik_ip = $router_ip.'.sn.mynetname.net';

if ($API->connect($mikrotik_ip, $mikrotik_username,$mikrotik_password)) {
    // 搜尋 PPPoE 使用者
    $API->write('/ppp/secret/print', false);
    $API->write('?name=' . $nombro);

    $pppoeUser = $API->read();

    if (!empty($pppoeUser[0]['.id'])) {
        $pppoe_id = $pppoeUser[0]['.id'];

        // 執行 disable
        $API->write('/ppp/secret/disable', false);
        $API->write("=.id=" . $pppoe_id);
        $API->read();

        $API->disconnect();

        echo json_encode([
            "status" => "成功",
            "message" => "將PPPoe帳號 '$nombro' 停用。"
        ]);
    } else {
        $API->disconnect();
        echo json_encode([
            "status" => "失敗",
            "message" => "找不到PPPoe帳號 '$nombro',請確認帳號是否正確。"
        ]);
    }
} else {
    echo json_encode(["status" => "error", "message" => "Failed to connect to RouterOS $router_ip"]);
}