python pyvmomi操作VMware(九):正确获取克隆的虚拟机IP所有信息

本文探讨了克隆虚拟机后出现的IP配置不符问题,原有获取IP的方法容易导致错误,提出了一种新的获取所有IP地址的方法,并通过列表包含的形式来确保能够正确识别所需的IP。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景: 克隆出来的虚拟机遇到了一个很奇怪的现象,克隆配置的IP和显示的第一IP地址不符合,如下图,当我去检查配置的IP,机器上的IP也配置成功了,但获取IP却是192.168.122.1。

在这里插入图片描述
目的: 获取克隆出来的虚拟机对象的IP是192.168.30.222
原获取IP的代码:

vm = self._get_obj([vim.VirtualMachine], vm_name)
if not vm:
    return {'info': {}, 'status': False}
summary = vm.summary
# IP地址
ip_address = summary.guest.ipAddress
host_name = summary.guest.hostName

发现这种获取方式是极其不严谨的,当克隆的虚拟机有这种虚拟的IP的时候,大概率会出现这种获取不到想要的IP信息。
现获取IP的代码:

vm = self._get_obj([vim.VirtualMachine], vm_name)
if not vm:
    return {'info': {}, 'status': False}
# IP地址
ips = []
if vm.guest.net:
    for i in vm.guest.net:
        if i.network:
            ips.extend(i.ipAddress)

这样获取的IP会获取到这个虚拟机的所有IP(包括IPv6)
后续只需要判断你设置的IP是否在这个ips列表里面就可以了。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值