更改mininet主机中的主机名

时间:2015-03-06 16:44:57

标签: python ubuntu networking hostname mininet

我需要模拟一个网络,其中有n台主机通过交换机连接。对此的完美工具似乎是mininet。问题是我需要在每个使用主机名的主机中运行python脚本。根据主机名,skript的行为会有所不同,所以这对我来说非常重要:)

但主机名似乎在每个主机中都是一样的!例如:

  

h1主机名

输出“simon-pc”

  

h2主机名

输出“simon-pc”

“simon-pc”是我的“真实”底层ubuntu系统的主机名。

我发现无法更改主机上的主机名。

这甚至可能吗?如果是,怎么样?如果不是,为什么不呢?

我为每个主机使用一个通用内核阅读mininet。这可能是问题吗?

2 个答案:

答案 0 :(得分:1)

我认为您不能通过在每台主机上运行“hostname”来获得不同的名称。只有与网络相关的命令才会在不同的主机上产生不同的结果,因为主机在不同的命名空间上运行。

因此,获取主机名的一种方法是运行ifconfig并从接口名称中解释主机名。

答案 1 :(得分:1)

我终于弄清楚如何去做,首先你需要运行" ifconfig "从程序内部命令并将其存储在变量中,然后使用正则表达式' re'抓住文本,我用它来抓住我主机的收件人......你可以为主机名做同样的事情

<强>码 getip(): ifconfig_output=(subprocess.check_output('ifconfig')).decode() ip=re.search(r".\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}",ifconfig_output) return((str(ip))[47:-2])

第一行将从终端获取输出(二进制使用解码以utf-8编码字符串表示)

第二行将使用正则表达式

获取文本中的ip

The Third将从搜索对象中获取ip并消除有关给定字符串中抓取文本位置的信息