icos_snake_port-to-port_configuration
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()
随机推荐
- 吴裕雄 python 机器学习——集成学习AdaBoost算法分类模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...
- 解决:执行python脚本,提示错误:/usr/bin/python^M: 解释器错误: 没有那个文件或目录。
执行python脚本,提示错误: /usr/bin/python^M: 解释器错误: 没有那个文件或目录. 产生错误原因: \r字符被显示为^M,这时候只需要删除这个字符就可以了. Linux环境下: ...
- Could not initialize class net.sourceforge.tess4j.TessAPI 解决方法
java.lang.NoClassDefFoundError: Could not initialize classnet.sourceforge.tess4j.TessAPI 主要原因是在Windo ...
- 前端开发CSS清除浮动的方法有哪些?
在前端开发过程中,非IE浏览器下,当容器的高度自动,并且容器内容中有浮动元素(float为left或right),此时如果容器的高度不能自适应内容的高度,从而使得内容溢出破坏整体布局,这种现象叫做浮动 ...
- Netty Learning Notes
简介 Netty是 一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端. Netty是一个NIO客户端服务器框架,可以快速轻松地开发网络应用程序,例如协议服务器和客户端. ...
- 微信小程序前端坑
链接:https://www.cnblogs.com/showMagic/p/7677551.html
- 微信+QQ跳转
加到对应页面的</body> 上面,或者<head> </head>之间 <script type="text/javascript"&g ...
- VMware升级到15版本虚拟机黑屏的解决方法
1.启动VMware15虚拟机,在菜单栏找到:虚拟机→管理→更改硬件兼容性 2.打开该项,弹出更改硬件兼容性向导对话框,点 下一步,接下来把硬件兼容性改为Workstation 12.x 3.根据提 ...
- jquery--获取多选框的值、获取下拉多选框的值
获取多选框的值 var packageCodeList=new Array(); $('#server_id:checked').each(function(){ packageCodeList.pu ...
- C/C++程序从文本文件中读取(保存)数据
:本文仅供初学者参阅,解惑 在C程序中: 与程序代码外的数据(文件)打交道,我们使用到流(stream)这个概念,实现进程的虚拟内存与文件之间的数据交换. ——文件流:C标准库提供了FILE(之所以命 ...