【Mininet】如何在python中获得Mininet中的主机名称

毕设中遇到一个问题是需要在输出的结果文件以当前运行脚本的主机命名。本以为可以轻易的使用 hostname 或者python中的 socket.gethostname() 方法来获取,但是运行后发现并非如此:

mininet> h19 hostname
ubuntu

即使在mininet环境下,使用linux的 hostname 命令返回的也是本地主机的主机名称,而 socket.gethostname() 也同样。

我的解决方法是通过解析 ifconfig 命令的输出来得到当前主机名,代码如下:

#Get the hostname
inf_line = os.popen("ifconfig").readlines()[0]
inf_pattern = re.compile(r‘h[0-9]*-eth0‘)
inf = inf_pattern.search(inf_line).group()
hostname = inf[0:len(inf)-5]

这段代码首先使用ifconfig返回结果的第一行来得到 hX-eth0 形式的接口字符串,然后再将后面的eth0后缀去掉即是我们需要的主机名称。

时间: 2024-12-25 14:39:14

【Mininet】如何在python中获得Mininet中的主机名称的相关文章

如何在python 深度学习Keras中计算神经网络集成模型

神经网络的训练过程是一个挑战性的优化过程,通常无法收敛. 这可能意味着训练结束时的模型可能不是稳定的或表现最佳的权重集,无法用作最终模型. 解决此问题的一种方法是使用在训练运行结束时看到的多个模型的权重平均值. 平均模型权重 学习深度神经网络模型的权重需要解决高维非凸优化问题. 解决此优化问题的一个挑战是,有许多“ 好的 ”解决方案,学习算法可能会反弹而无法稳定. 解决此问题的一种方法是在训练过程即将结束时合并所收集的权重.通常,这可以称为时间平均,并称为Polyak平均或Polyak-Rupp

如何在Python中从零开始实现随机森林

欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 决策树可能会受到高度变异的影响,使得结果对所使用的特定测试数据而言变得脆弱. 根据您的测试数据样本构建多个模型(称为套袋)可以减少这种差异,但是树本身是高度相关的. 随机森林是套袋(方法)的延伸,除了基于多个测试数据样本构建树木之外,它还限制了可用于构建树木的特征,使得树木间具有差异.这反过来可以提升算法的表现. 在本教程中,您将了解如何在Python中从头开始实现随机森林算法. 完成本教程后,您将知道: 套袋决策树和随机森林算法的区别.

如何在Python中快速画图——使用Jupyter notebook的魔法函数(magic function)matplotlib inline

如何在Python中快速画图--使用Jupyter notebook的魔法函数(magic function)matplotlib inline 先展示一段相关的代码: #we test the accuracy of knn and find the k which makes the biggest accuracy k_range=list(range(1,26))#[1,25] scores=[] for k in k_range: knn=KNeighborsClassifier(n_

关于如何在Python中使用静态、类或抽象方法的权威指南

Python中方法的工作方式 方法是存储在类属性中的函数,你可以用下面这种方式声明和访问一个函数 >>> class Pizza(object): ... def __init__(self, size): ... self.size = size ... def get_size(self): ... return self.size ... >>> Pizza.get_size <unbound method Pizza.get_size> Python

Python 可视化Twitter中指定话题中Tweet的词汇频率

CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-7-8 @author: guaguastd @name: plot_frequencies_words.py ''' if __name__ == '__main__': #import json # import Counter from collections import Counter # import search from search impor

python中处理读入文件中的转义字符

本文最初发表于 http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4143291&page=1#pid24220123 Hello World! In [3]: s.encode('string_escape') Out[3]: 'Hello\\nWorld!' In [4]: Out[3].decode('string_escape') Out[4]: 'Hello\nWorld!' Not *quite* what you as

Python 自带IDLE中调试程序

在vs2013下调试过Python,今天试了下使用自带IDLE调试,相比而言后者效果不好. 记录一下 http://q.cnblogs.com/q/35869/ 在“Python Shell”窗口中单击“Debug”菜单中的“Debugger”菜单项,就可以启动IDLE的交互式调试器.这时,IDLE会打开“Debug Control”窗口,并在“Python Shell”窗口中输出“[DEBUG ON]”并后跟一个“>>>”提示符.这样,我们就能像平时那样使用这个“Python Shel

如何在html5的canvas画布中绘制gif动态图片

我们都知道如何在html5的canvas画布上绘制静态图片(jpeg, png等),直接用canvas中的drawImage方法即可,那么如何绘制动态图片(gif)? 相信大家都知道动态图片之所以动态,是因为它是由很多图片按一定的帧数顺序播放而成的,因此我们是否也可以模拟这样的帧数,每隔一定的时间重新 绘制图片,就能画出动态图片呢?答案当然是YES.下面就是我自己测试的一个例子,代码如下: 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 &l

Python下获取当前目录中的所有子目录

p是输入目录 代码如下 import osdef getDirList(p):  #      b = [];    filepath=p    if filepath=="":        return b    filepath = filepath.replace( "/","\\")    if filepath[ -1] != "\\":        filepath = filepath+"\\&qu