Topo:

# $language = "Python"

# $interface = "1.0"
# Author:Bing
# Date:6/21/2017
# icos_port-to-port_vlan_configuration
# Usage:You can edit "start_port_number","stop_port_number" and "star_vlan_number" according to actaul case.
#for exmaple:port1-port48,vlan number starts from 200.like this 200,201,202....
def main():
#设置起始端口号
start_port_number=1
#设置结束端口号
stop_port_number=48
port_number=int(stop_port_number)-int(start_port_number)+1
#设置vlan的起始编号,默认是100,可以根据需要设置为数字2-4094内,任意一个
star_vlan_number=200
end_vlan_number=int(star_vlan_number)+int(port_number/2)
#生成vlan list
vlan_list=[]
for i in range(star_vlan_number,end_vlan_number):
vlan_list.append(i)
#生成偶数端口list
oushu=[]
oushu=[i+1 for i in range (int(start_port_number),int(stop_port_number),2)]
#生成奇数端口list
jishu=[]
for i in range (int(start_port_number),int(stop_port_number),2):
jishu.append(i)
#生成奇数和偶数vlan list
jishu_vlan_list=[]
oushu_vlan_list=[]
for i in range (star_vlan_number,end_vlan_number):
if i%2==0:
oushu_vlan_list.append(i)
else:
jishu_vlan_list.append(i)
#vlan的创建及首尾端口vlan配置
crt.Screen.Send("vlan database" + chr(13))
crt.Screen.Send("interface 0/"+str(oushu[0])+",""0/"+str(oushu[-1]) + chr(13))
crt.Screen.Send("vlan pvid"+chr(32)+str(oushu_vlan_list[-1]) + chr(13))
crt.Screen.Send("vlan participation exclude 1" + chr(13))
crt.Screen.Send("vlan participation include"+chr(32)+str(oushu_vlan_list[-1]) + chr(13))
crt.Screen.Send("exit" + chr(13))
#奇数vlan
for i,j in zip(range(0,port_number,+2),range(0,len(jishu_vlan_list),1)):

crt.Screen.Send("interface 0/"+str(jishu[i])+",""0/"+str(jishu[i+1]) + chr(13))
crt.Screen.Send("vlan pvid"+chr(32)+str(jishu_vlan_list[j]) + chr(13))
crt.Screen.Send("vlan participation exclude 1" + chr(13))
crt.Screen.Send("vlan participation include"+chr(32)+str(jishu_vlan_list[j]) + chr(13))
#偶数vlan
for i,j, in zip(range(1,port_number,+2),range(0,len(oushu_vlan_list),+1)):
try:
crt.Screen.Send("interface 0/"+str(oushu[i])+",""0/"+str(oushu[i+1]) + chr(13))
crt.Screen.Send("vlan pvid"+chr(32)+str(oushu_vlan_list[j]) + chr(13))
crt.Screen.Send("vlan participation exclude 1" + chr(13))
crt.Screen.Send("vlan participation include"+chr(32)+str(oushu_vlan_list[j]) + chr(13))
except IndexError:
pass
main()

随机推荐

  1. SpringMvc中文件的上传

    本文转自:http://www.cnblogs.com/fjsnail/p/3491033.html 三个方法没有都测试,先get再说 第一个方法慢不知道是不是因为写的代码是按字节读取的,没有用Buf ...

  2. JavaScript - let和var区别

    前提 ES5只有函数作用域和全局作用域,var属于ES5.let属于ES6,新增块级作用域.目的是可以写更安全的代码. The let statement declares a block scope ...

  3. ubuntu14.04安装好Hadoo之后接着安装hbase和介绍常用命令

    1.解压 tar -zxvf hbase-1.0.0-bin.tar.gzsudo mv hbase-1.0.0 /opt/hbasecd /optsudo chmod -R 775 hbase 2. ...

  4. numpy-sum函数

    看一个例子就懂了 c = array([[[0, 1, 2, 0, 1, 2]], [[0, 1, 2, 0, 1, 2]]]) print('{0}\n'.format(c.shape)) prin ...

  5. ajax循环展示某段代码

    ajax内定义function,根据条件递归调用即可. success: function(data){ if (dataList[i].subModuleList){ sublist(dataLis ...

  6. Python(三)enumerate函数

    原文链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143177932 ...

  7. 【译】高级T-SQL进阶系列 (三)【上篇】:理解公共表表达式(CTEs)

    [译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文链接:传送门. 伴随着SQL SERVER 2005的首次展示,微软介绍了一种新的被称为“公共表 表达式”(CTE)的查询结构. ...

  8. pb加密转换成C#

    本来想把PB 的函数封装成COM组件调用,结果怎么都搞不定,只能讲代码搞出来换种语言实现了. string s_ret integer i_first,i_second,i_third,i_fourt ...

  9. 攻防世界 web 新手练习 刷题记录

    1.view_source 既然让看源码,那就F12直接就能看到. 2.robots 先百度去简单了解一下robots协议 robots协议(robots.txt),robots.txt文件在网站根目 ...

  10. 浅谈python中__str__和__repr__的区别

    很多时候我们在创建一个类的时候,在终端打印类或者查看的时候一般都不会得到一个太满意的结果 class T: def __init__(self): self.color="red" ...