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()
随机推荐
- 数据库程序接口——JDBC——功能第二篇——数据源之C3P0数据源
综述 C3P0由三部分内容组成.实例化对象,各配置项的含义,以及加载配置项的方式. 实例化对象的方式有三种,第一种方式直接new ComboPooledDataSource,第二种方式使用工厂类Dat ...
- Atcoder Beginner Contest153E(完全背包)
完全背包,价值取题意代价的最小值 #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using namespace std; ],b ...
- Linux shell sed 命令详解
详细的sed命令详解,请参考https://my.oschina.net/u/3908182/blog/1921761 sed命令常见用途 查找关键词做全局替换 查找某行的关键词做替换 查找关键字所在 ...
- centos 6.10 安装mysql 5.7.27 出现缺少libnuma.so.1的问题
centos 6.10安装mysql 5.7.27出现以下报错: [root@localhost /]# /usr/local/mysql/app/mysql/bin/mysqld --default ...
- HGsoft-downloader
[NEW]HGsoft-downloader上线了! 给你提供一个简洁无广告的电脑软件下载平台,换个角度下载电脑软件. 网站地址:Go
- GIT分布式代码管理系统
1:GTI介绍及使用 环境搭建: 服务器 IP地址 主机名 角色 Centos7.5 192.168.200.113 gitserver GIT服务器 Centos7.5 192.168.200.11 ...
- C++子类虚函数表指针
最近看剑指offer,记录一下 #include <iostream> #include <string> #include <cctype> #include&l ...
- C语言程序设计100例之(26):二进制数中1的个数
例26 二进制数中1的个数 问题描述 如果一个正整数m表示成二进制,它的位数为n(不包含前导0),称它为一个n位二进制数.所有的n位二进制数中,1的总个数是多少呢? 例如,3位二进制数总共有4个, ...
- shell脚本编程学习笔记(三)编写邮件报警脚本
一.shell编写邮件报警脚本 1.POSTFIX邮件服务器准备 a.首先卸载服务器上自带的sendmail rpm -qa sendmail* //查看安装的sendmail rpm -e send ...
- 高级命令之awk
1.提取文件内容 2.提取ip