簡體   English   中英

如何獲取 VM 網卡的 IP?

[英]How do I get the IP of VMs NIC?

我正在使用 VSPHERE JDK JAVA 6.5。 虛擬機的 IP 隱藏在哪里? 我得到了帶有一些信息的 vmNics(),但 IP 不是其中的一部分。

我必須使用哪個 class? 謝謝

VMTypes.Info vmInfo = vcVAPIConnect.getVM(vapiStub, vmID);
if (vmInfo != null) {
    System.out.println("VM Detail Id   = " + vmID);
    System.out.println("VM Detail Name = " + vmInfo.getName());

    Set<String> fldList = vmInfo._getDynamicFieldNames();
    System.out.println("VM Dyn. Fieldlist (Size): " + fldList.size());
    for (String fldValue: fldList) {
        System.out.println("VM Detail Name = " + fldValue + " / " + vmInfo._getDynamicField(fldValue));
    }

    System.out.println("VM Detail Hardware Version   = " + vmInfo.getHardware().getVersion());

    System.out.println("VM Detail CPU CoresPerSocket = " + vmInfo.getCpu().getCoresPerSocket());
    System.out.println("VM Detail CPU Count          = " + vmInfo.getCpu().getCount());
    System.out.println("VM Detail CPU CannonialName  = " + vmInfo.getCpu()._getCanonicalName());

    System.out.println("VM Detail RAM Size           = " + vmInfo.getMemory().getSizeMiB());
    System.out.println("VM Detail RAM CannonialName  = " + vmInfo.getMemory()._getCanonicalName());

    Map<String, EthernetTypes.Info> vmNics = vmInfo.getNics();
    System.out.println("VM Detail NIC Size           = " + vmNics.size());
    for (String nicKey: vmNics.keySet()) {
        System.out.println("VM Detail NIC Key            = " + nicKey);
        System.out.println("VM Detail NIC CannonialName  = " + vmNics.get(nicKey)._getCanonicalName());
        System.out.println("VM Detail NIC MacAddr        = " + vmNics.get(nicKey).getMacAddress());
        System.out.println("VM Detail NIC MacType        = " + vmNics.get(nicKey).getMacType().toString());
        System.out.println("VM Detail NIC Label          = " + vmNics.get(nicKey).getLabel());
        System.out.println("VM Detail NIC PCI Slot       = " + vmNics.get(nicKey).getPciSlotNumber());
        System.out.println("VM Detail NIC Backing Name   = " + vmNics.get(nicKey).getBacking().getNetworkName());
        System.out.println("VM Detail NIC Backing Net    = " + vmNics.get(nicKey).getBacking().getNetwork());
        System.out.println("VM Detail NIC Backing Host   = " + vmNics.get(nicKey).getBacking().getHostDevice());

        fldList = vmNics.get(nicKey)._getDynamicFieldNames();
        System.out.println("VM Detail NIC Dyn. Fieldlist (Size):    " + fldList.size());
        for (String fldValue: fldList) {
            System.out.println("VM Detail NIC = " + fldValue + " / " + vmInfo._getDynamicField(fldValue));
        }
    }
}

IP 地址信息位於不同的服務中,與 NIC 信息分開。 這是因為 IP 地址是通過 VMware Tools 從客戶機操作系統中提取的。

該服務稱為 Guest(在 Guest Operations 之后),IP 地址以及其他屬性可在此處找到: https://code.vmware.com/apis/366/vsphere-automation/VMware-vSphere-Automation-SDK- REST-6.7.0/docs/apidocs/operations/com/vmware/vcenter/vm/guest/identity.get-operation.html

一個值得注意的問題,當這項服務推出時,我並不積極。 我知道它不在 vSphere 6.5 的版本中,但它可能已在以后的某個時候添加。 我知道它在 vSphere 6.7 中,但這可能沒有幫助,因為您使用的是 6.5 SDK。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM