项目实战--制作web管理锐捷交换机(一)

最近,我们学院刚刚进行了计算机设计大赛,我却没什么可以拿出手的,所以心里想敲一个web管理交换机信息系统,这个思路是由我们网络中心的老师提出的,他给我们展示了php连接交换机并进行一些配置,包括查看是否配置dot1x,我对这个是深深佩服,也对它比较痴迷,所以这几天每天做一个每日总结,总结的过程中学习。
首先,上一下代码,钱主任写的

<?
$gwip=192.168.1.1;
$usenet = @fsockopen($gwip, 23, $errno, $errstr,1);//其中最后的1为超时时间
@stream_set_blocking($usenet, true);//定义让读取流程序阻塞运行,下一个未读取的字节出现前一直等待
@stream_set_timeout($usenet, 1);//定义阻塞等待时间为1秒
if($usenet)
{
    echo "##############################连接交换机成功!##############################<br/>";
}
elseif(!$usenet)
{
    echo "<span style='color:#FF0000;'>连接交换机失败!</span><br/>";
}

if($usenet)
{
    sleep(2);
    fputs($usenet,"admin\n");
    sleep(2);
    fputs($usenet,"admin\n");
    sleep(2);

    fputs($usenet,"enable\r\n");
    sleep(2);
    // echo $ret=fgets($usenet)."<br>";

    fputs($usenet,"admin\r\n");
    sleep(2);
    //显示配置信息
    fputs($usenet,"show run\r\n");
    sleep(2);
    //vlan建立实例
    /*
     fputs($usenet,"config\r\n");
     sleep(1);
     fputs($usenet,"vlan 100\r\n");
     sleep(1);
     fputs($usenet,"name dzu\r\n");
     sleep(1);
     fputs($usenet,"exit\r\n");
     sleep(1);
     fputs($usenet,"interface range gigabitEthernet 0/1 - 8\r\n");
     sleep(1);
     fputs($usenet,"switchport access vlan 100\r\n");
     sleep(1);

     fputs($usenet,"show vlan\r\n");
     sleep(2);
     */
    //实例结束
    // echo $ret=fgets($usenet)."<br>";

    //循环获取交换机返回信息
    $i=0;
    $port_num=0;
    $check_start=0;
    $port_state="";

    while($ret=fgets($usenet))
    {
        $i++;
        //echo $i.">".$ret."<br/>";
        echo $ret."<br>";
        if(stripos($ret,"--More--")!==false) fputs($usenet," "); //如果返回是“--More--”则输入空格,让其显示所有信息

        //以下检查端口是否受控实例

        if(stripos($ret,"interface gigabitEthernet")!==false)
        {
            $check_start=1;
            $exp=explode("/",$ret);
            $str=intval($exp[1]);
            $port_num=$str;
            continue;
        }
        if($check_start==1)
        {
            //排除检测,如果为Trunk口、vlan 2、vlan 187、则不进行判断
            if(strpos($ret,"trunk")!==false || strpos($ret,"vlan 2")!==false || strpos($ret,"vlan 187")!==false)
            {
                $check_start=0;
                continue;
            }
            if(strpos($ret,"!")!==false) //如果出现“!”号还没匹配dot1x的则认为端口不受控,并继续循环
            {
                $check_start=0;
                echo "<span style='color:#0000FF'>&nbsp;&nbsp;&nbsp;端口".$port_num."不受控!</span><br>";
                $port_state.=$port_num.", ";
                continue;
            }
            if(strpos($ret,"dot1x port-control auto")!==false)//如果为dot1x端口则返回端口受控,并继续循环
            {
                $check_start=0;
                //echo "端口".$port_num."受控!<br/>";
                continue;
            }
        }

        //实例结束

        flush();//溢出缓存最新数据,快速输出返回结果
    }
    fclose($usenet);
}
?>
<meta charset="gb2312">


主要的就是这些函数

@fsockopen( g w i p , 23 , errno, $errstr,1);//其中最后的1为超时时间

这个函数是定义的连接,sock,通过23端口连接交换机的一个函数

@stream_set_blocking($usenet, true);//定义让读取流程序阻塞运行,下一个未读取的字节出现前一直等待

@stream_set_timeout($usenet, 1);//定义阻塞等待时间为1秒

flush();//溢出缓存最新数据,快速输出返回结果

我今天做的事呢,就是在这个基础的模板上,创建几个变量,把ip,password和enable密码做了一个变量,然后另外敲了一个form表单,把ip,password,enable做了一个input输入框,可以通过输入ip,password密码,enable密码来进行web控制交换机。
这里写图片描述
然后,我还做了一半后台登陆界面,没有图片验证码,后面会加上,以防止暴力破解。
这里写图片描述

<?php 

?>
<html>
<head>
<meta charset="gb2312">
<title>登陆</title>
<style>
body{
    background-image:url(img/bj.jpg);
}
.ht{
    height:350px;
    width:450px;
    border-radius:5px;
    position: absolute;
    top: 30%;   
    left: 35%;
}
.mc{
    height:50px;
    width:450px;
    color:#fff;
    font-size:27px;
    text-align:right;
}
.zt{
    background-color:#fff;
    border-radius:5px;
    height:300px;
    width:450px;
}
.zt input{
    margin:20px;
    width:90%;
    height:20%;
    border-radius:10px;
    font-size:30px;
}
.zt button{
    width:90%;
    height:20%;
    background-color:#66D354;
    margin-left:20px;
    border-radius:20px;
    margin-top:15px;
}
</style>
</head>
<body>
<div class="ht">
<div class="mc">
  交换机管理系统
</div>
<div class="zt">
<form action="logincheck.php" method="post">
 <input type="text" name="user" placeholder="用户名">
 <input type="password" name="password" placeholder="密码">
 <button name="submit">登陆</button>
</form>
</div>
</div>
</body>
</html>

这个是我借鉴的js代码,通过选取按钮进入页面
这里写图片描述

<script>
function echo(){
    if(document.form1.a[0].checked==true)
    document.form1.action="lj.php"
    else
    document.form1.action="t.php"
}
</script>
</head>
<body>
<form name="form1" method="post" action="" onSubmit="echo();">
交换机ip地址:<input type="text" name="ip" size="20"><br /><br>
交换机登陆密码:<input type="password" name="password" size="20"><br /><br />
交换机enable密码:<input type="password" name="enable" size="20"><br /><br />
开启<input type="radio" name="a">
关闭<input type="radio" name="a">
<input name="" type="submit" value="提交">

最后说一下,其中最重要的php代码已经在上边了,关于php后台、前台我相信你们写的肯定比我好,真切的希望能多交流交流。(我感觉我的登陆后台好丑。。。)
这里写图片描述

猜你喜欢

转载自blog.csdn.net/bt517840374/article/details/80055636