当前位置:   article > 正文

项目实战--制作web管理锐捷交换机(一)_锐捷交换机关闭web登陆

锐捷交换机关闭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">


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109

主要的就是这些函数

@fsockopen(gwip,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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64

这个是我借鉴的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="提交">
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/776354
推荐阅读
相关标签
  

闽ICP备14008679号