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()
随机推荐
- 【Webpack】
目录 关于模块化编程 Webpack的工作方式 三个重要的概念 使用Webpack创建一个项目 正式使用Webpack 使用Webpack进行ES6的模块化编程 "本质上,Webpack是一 ...
- putty上传下载文件
一,需要pscp.exe,习惯上和Putty.exe文件放在一起. 首先需要保证在命令行下可以访问到pscp.exe.可以通过配置Windows的环境变量Path,或者直接通过命令行访问到pscp.e ...
- 如何创建Maven项目和Spring IOC例子
把如何创建Maven项目和创建Spring IOC的例子分享给大家,希望能对大家有帮助! 我的博客地址:https://www.cnblogs.com/themysteryofhackers/p/12 ...
- 简单桶排序(Bucket Sort)
1.基本思想 桶排序是将待排序集合中处于同一个值域的元素存放在同一个桶中1. 2.算法设计2 假设有一个班级有5个人,这次期末他们分别考了5分,2分,4分,5分,8分(满分为10分).需要将这些分数从 ...
- json_encode转化索引数组之后依然还是数组的问题
小坑问题:直接上图 解决方法:(json_encode加入第二个参数) JSON_FORCE_OBJECT
- Android SDK Tools,Platform-tools,Build-tools分别有什么作用?
SDK Tools:是下载sdk最基础的,由它再来下载Platform-tools,Build-tools platform-tools包含开发app的平台依赖的开发和调试工具,包括 adb.fast ...
- NOIP-- 模拟-----机器
机器翻译 题目描述 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换.对于每个英文单词,软件会先 ...
- template-组件封装
HTML: //:ligit='ligit' 一致 <div id='app'> <template-swiper :ligit='ligit'></template-s ...
- 关于GOM引擎启动时显示:windows socket error: 在其上下文中,该请求的地址无效。 (10049), on API 'bind'
GOM启动时网管登陆器显示:windows socket error: 在其上下文中,该请求的地址无效. (10049), on API 'bind'解决方法: 重新配置引擎控制台.在配置里取消双IP ...
- 【快学SpringBoot】Spring Cache+Redis实现高可用缓存解决方案
前言 之前已经写过一篇文章介绍SpringBoot整合Spring Cache,SpringBoot默认使用的是ConcurrentMapCacheManager,在实际项目中,我们需要一个高可用的. ...