用 PHP 来执行执行网络相关命令

  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 协议》,转载必须注明作者和本文链接
LivisSnack
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!