You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python获取主机IP地址?解决VMware导致的IP识别错误问题

解决VMware环境下获取主机真实IP的方法

我来帮你搞定这个问题!碰到VMware虚拟网卡抢占IP检测的情况太常见了,完全不用卸载VMware,咱们可以从代码逻辑、系统配置两个方向入手,精准拿到主机本身的IP。

一、通过代码逻辑过滤VMware虚拟网卡

核心思路是识别并排除VMware相关的虚拟网卡,只保留物理网卡的IP地址。下面给几个常用场景的实现示例:

Python 实现

可以用netifaces库直接过滤网卡名称,或者通过连接外部服务器的方式获取外网出口IP(更可靠,虚拟网卡一般不会走外网链路):

# 方法1:过滤虚拟网卡名称
import netifaces

def get_host_real_ip():
    for interface in netifaces.interfaces():
        # 过滤VMware虚拟网卡(名称通常带VMware、vEthernet、VMnet关键词)
        if "VMware" in interface or "vEthernet" in interface or "VMnet" in interface:
            continue
        addrs = netifaces.ifaddresses(interface)
        if netifaces.AF_INET in addrs:
            for addr_info in addrs[netifaces.AF_INET]:
                # 排除回环地址
                if not addr_info['addr'].startswith('127.'):
                    return addr_info['addr']
    return None

# 方法2:通过连接外部服务器获取出口IP
import socket

def get_public_real_ip():
    try:
        # 连接公共DNS服务器,获取当前向外网通信的IP
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(("8.8.8.8", 80))
        real_ip = s.getsockname()[0]
        s.close()
        return real_ip
    except Exception as e:
        print(f"获取失败: {e}")
        return None

Windows PowerShell 脚本

直接通过网卡名称过滤:

Get-NetIPAddress -AddressFamily IPv4 | Where-Object {
    $_.InterfaceAlias -notmatch 'VMware|vEthernet|VMnet' -and $_.IPAddress -notlike '127.*'
} | Select-Object -ExpandProperty IPAddress

Linux 命令行/脚本

Linux下VMware虚拟网卡通常带vmnet前缀,用ip命令过滤:

ip addr show | grep -v vmnet | grep -v '127.0.0.1' | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | head -n 1

二、调整网卡优先级(Windows系统)

如果不想修改代码,可以通过调整网卡优先级,让物理网卡的优先级高于VMware虚拟网卡:

  • 打开「控制面板 > 网络和共享中心 > 更改适配器设置」
  • 按Alt键调出菜单栏,选择「高级 > 高级设置」
  • 在「适配器和绑定」面板中,把你的物理网卡(比如以太网、Wi-Fi)拖动到所有VMware虚拟网卡的上方
  • 确认设置后重启网络,代码默认会优先获取物理网卡的IP

三、临时禁用VMware虚拟网卡

如果只是临时需要获取真实IP,不用卸载VMware,直接禁用虚拟网卡即可:

  • Windows:在网络适配器列表中右键VMware相关网卡,选择「禁用」
  • Linux:执行sudo ifdown vmnetX(X为网卡编号,比如vmnet1),需要恢复时执行sudo ifup vmnetX

内容的提问来源于stack exchange,提问作者sooaran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:27:56