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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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(rh[0-9]*-eth0)
inf = inf_pattern.search(inf_line).group()
hostname = inf[0:len(inf)-5]

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

以上是关于Mininet如何在python中获得Mininet中的主机名称的主要内容,如果未能解决你的问题,请参考以下文章

无法找到包 python-pip Ubuntu 20.04

如何在 Mininet 自定义拓扑上设置带宽?

mininet and ovs 总结

不可用类型:在mininet中运行python脚本时出现'list'错误

ubuntu中安装好了mininet 但是运行python代码时,报错?

如何运行mininet2.2.1中的图形界面