首页 > 编程语言 >SDN 编写Python脚本创建自定义网络拓扑

SDN 编写Python脚本创建自定义网络拓扑

时间:2023-05-04 15:14:07浏览次数:77  
标签:自定义 Python self 网络拓扑 switches range num hosts

编写Python脚本创建自定义网络拓扑,包括5台交换机5台主机

from mininet.topo import Topo


class RingTopo(Topo):
    def __init__(self):
        Topo.__init__(self)

        # Create switches
        s_num = 5
        h_num = 5
        switches = []
        hosts = []
        for i in range(s_num):
            switches.append(self.addSwitch('s%d' % (i + 1)))

        # Create hosts
        for i in range(h_num):
            hosts.append(self.addHost('h%d' % (i + 1)))

        # Create links
        for i in range(s_num - 1):
            self.addLink(switches[i], switches[i + 1])

        self.addLink(switches[0], switches[s_num-1])

        for i in range(s_num):
            self.addLink(switches[i], hosts[i])


topos = {'ring': (lambda: RingTopo())}

执行

mn --custom topo_ring.py --topo ring --controller=remote

image

标签:自定义,Python,self,网络拓扑,switches,range,num,hosts
From: https://www.cnblogs.com/huanfei/p/17371258.html

相关文章

  • python11:局部变量与全局变量
    局部变量:在函数内部定义的变量,作用域仅仅局限在函数的内部。不同的函数可以定义相同的局部变量,但是各自用各自的不会产生影响注意:局部变量在函数执行完毕后会释放作用:为了临时的保存数据,需要在函数中定义来进行存储。全局变量:当全局变量和局部变量出现重复定义的时候,程序就......
  • python判断2个版本号大小
    摘自:https://blog.csdn.net/lizy0327/article/details/121164549此方法唯一的“限制”就是要求版本号之间默认是以.为连接的,当然如果是其他字符连接的话,完全可以在split修改即可,所以严格意义上来说这也不算限制,只能是默认传入的版本号是以.为连接而已。此外,对于版本号是否长度相......
  • 在线直播系统源码,默认倒计时,自定义输入时间倒计时
    在线直播系统源码,默认倒计时,自定义输入时间倒计时html部分代码 <divid="app">  <inputtype="num"v-model="time">  <inputtype="button" @click="click_input(time)"value="点击">  <div>{{get_cod......
  • python 迭代器
    在Python3中,迭代器是一种可以逐个访问集合元素的对象,它实现了迭代协议(IteratorProtocol),即该对象必须具有__iter__()和__next__()方法。__iter__() 方法返回迭代器对象本身。__next__() 方法返回下一个元素。当没有更多的元素时,__next__()方法应引发StopIteration......
  • Python爬虫需要哪些基础
    Python爬虫是指使用Python语言编写程序,自动化地访问Web页面并抓取其中的信息。以下是Python爬虫的基础知识:爬虫的工作原理:爬虫程序通过网络请求获取Web页面的HTML源码,然后使用正则表达式或解析器提取所需要的信息。常用的爬虫库:Python中常用的爬虫库包括requests、BeautifulSoup......
  • python 装饰器
    装饰器(Decorator)是Python语言中的一种高级技巧,可以在不改变原有代码的基础上,动态地给函数或类增加额外的功能。本质上,装饰器就是一个普通函数,它可以接受一个或多个参数,并且返回一个函数作为结果。装饰器的语法如下:@decorator_functiondeffunction_to_be_decorated():#F......
  • python 为什么在python脚本中import就可以引用别人的包
    目录python为什么在python脚本中import就可以引用别人的包编写一个包打包。发布到PyPIpython为什么在python脚本中import就可以引用别人的包Python中的import语句可以将已有的代码模块导入到当前的程序中,方便我们复用代码。如果你想让别人在其电脑上导入你写的包,有以下几......
  • python 内置函数map()、filter()函数
    map()函数接受两个参数:第一个参数是一个函数,第二个参数是一个可迭代对象(如列表、元组等)。该函数会将可迭代对象中的每个元素依次传递给第一个参数指定的函数,并返回一个新的可迭代对象,其中每个元素都是原始对象经过该函数转换后的结果。具体来说,map()函数会将可迭代对象中的每个......
  • python 函数
    在Python中,函数是一段代码块,用于完成特定的任务。函数通常接受一个或多个参数,并返回一个结果。根据函数的定义方式和参数类型,可以将Python函数分为以下几类:内置函数:Python内置了很多常用的函数,如 print()、len()、int() 等。自定义函数:使用 def 关键字可以自定义函数......
  • python 匿名函数(lambda函数)
    Python中的匿名函数是指没有命名标识符的函数,通常被称为lambda函数。与普通函数不同,它们是一种更加简洁的方式来编写小型临时函数。在Python中,匿名函数使用关键字lambda来定义,其语法如下:lambdaarguments:expression其中,arguments表示函数参数,可以是一个或多个,多个参数之间用......