码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-04-19 11:42:59      阅读:342      评论:0      收藏:0      [点我收藏+]

标签:方法   主机   输出   pil   att   pattern   compile   linux   代码   

毕设中遇到一个问题是需要在输出的结果文件以当前运行脚本的主机命名。本以为可以轻易的使用 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中的主机名称

标签:方法   主机   输出   pil   att   pattern   compile   linux   代码   

原文地址:http://www.cnblogs.com/XiaodongZhang/p/6732587.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!