赞
踩
最近,我们学院刚刚进行了计算机设计大赛,我却没什么可以拿出手的,所以心里想敲一个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'> 端口".$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">
主要的就是这些函数
这个函数是定义的连接,sock,通过23端口连接交换机的一个函数
我今天做的事呢,就是在这个基础的模板上,创建几个变量,把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后台、前台我相信你们写的肯定比我好,真切的希望能多交流交流。(我感觉我的登陆后台好丑。。。)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。