用 PHP 來執行執行網路相關命令

LivisSnack發表於2018-07-04
  1. 用ping來檢測網路是否暢通

    /**
     * 透過ping對方的IP檢測網路連線狀態
     * -c $count ping的次數
     * -i 0.201 每隔201ms傳送一次ping指令
     * -w 總超時時間,預設60s
     *
     * @param $ip 終端IP地址
     * @param $timeout ping的總超時時間
     * @return 成功返回0,失敗返回1
     */
    function ping($ip, $timeout = 60){
        $count = 3;
        system ( "ping -c $count -w $timeout -i 0.201 $ip 2>&1 >/dev/null", $error_code );
        return $error_code;
    }
  2. 新增Route閘道器

    /**
     * 新增Route閘道器
     *
     * @param string $ip
     * 路由閘道器的IP地址
     * @return int 命令執行結果程式碼
     */
    function addRoute($ip) {
        $cmd = sprintf ( "route add default gw %s", $ip );
        @exec ( $cmd, $output, $code );
        return $code;
    }
  3. 刪除Route閘道器

    /**
     * 刪除Route閘道器
     *
     * @param string $ip
     * 路由閘道器的IP地址
     * @return int 命令執行結果程式碼
     */
    function delRoute($ip) {
        $cmd = sprintf ( "route del default gw %s", $ip );
        @exec ( $cmd, $output, $code );
        return $code;
    }
  4. 查詢路由配置中是否有該IP

    /**
     * 查詢路由配置中是否包含該IP
     *
     * @param string $ip
     * 路由閘道器的IP地址
     * @return boolean 是否包含
     */
    function route($ip){
         $last_line = @exec ( "route", $output, $code );
         return ! (strpos ( $last_line, $ip ) === false);
    }
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章