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. 关于XShell&XFtp

    今天在开发的时候要打包一个东东到测试服务器去,突然发现xftp用不了,然后各种下载破解.绿色版 结果都是一堆广告,原来这个xshell支持民用版,无需破解就能下载使用,这里小小的记录下 一.  前言 ...

  2. SpringBoot 开发的那些小趣事儿

    经过这次在公司实习中获取到的经历,我发现确实有时候书本上的知识发挥的作用微乎其微,好像是被问题打了太极拳一样,你明明想去攻克这个地方,他却给你报了其他地方的错误. 平常的一些小项目根本就不能匹配到企业 ...

  3. 专题-集合-ConcurrentHashMap

    本文介绍ConcurrentHashMap是线程安全的,但为什么却不用加锁的原因 一.ConcurrentHashMap简介 在jdk1.7中是采用Segment + HashEntry + Reen ...

  4. opencv:图像直方图均衡化

    // 直方图均衡化 Mat gray, dst; cvtColor(src, gray, COLOR_BGR2GRAY); equalizeHist(gray, dst); imshow(" ...

  5. rg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'TL_C_CONS_ExtendController':

    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'TL_ ...

  6. layui数据表格固定头部和第一列、colspan合并列

    刚看到原型图的时候,纳尼?不是跟我开玩笑吧,小女子资历尚浅,还真没做过像这样的功能,然后就是各种找度娘,可是都没有找到合适的,很多都是行合并,真的是头疼呀!再纠结是用VUE实现还是用layui实现好, ...

  7. Apache Thrift Learning Notes

    简介 Apache Thrift软件框架(用于可扩展的跨语言服务开发)将软件堆栈与代码生成引擎结合在一起,以构建可在C ++,Java,Python,PHP,Ruby,Erlang,Perl,Hask ...

  8. 浅析PHP页面局部刷新功能的实现小结(转)

    转载地址 https://www.jb51.net/article/38901.htm 方法其实挺多的.以前比较常用的是iframe这样来做.现在多了个ajax,所以一般情况下都是用的ajax.第一种 ...

  9. Rsync+inotify数据同步

    安装环境 备份服务器端:CentOS7,IP:192.168.1.100 备份客户端:CentOS7,IP:192.168.1.200 服务器端Rsync服务部署 1.安装程序包 # yum –y i ...

  10. contextField 键盘只允许输入数字和小数点,并且现在小数点后位数

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementS ...