Vijava 学习笔记之(VirtualMachine 获取网卡配置信息)

本文详细介绍了如何使用源代码配置和管理虚拟机的网络卡,包括获取主机信息、自定义网卡信息如MAC地址、设备配置ID、网络组、IP地址、DNS地址等。

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

源代码:

package com.vmware.client;

import com.vmware.util.Session;
import com.vmware.vim25.GuestInfo;
import com.vmware.vim25.GuestNicInfo;
import com.vmware.vim25.ManagedObjectReference;
import com.vmware.vim25.NetDnsConfigInfo;
import com.vmware.vim25.mo.*;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 虚拟机关联网卡
 * Created by vixuan-008 on 2015/6/8.
 */
public class VirtualMachineNetCardConfig {
    public static void main(String[] args){
        try{
           ServiceInstance serviceInstance = Session.getInstance("***", "***", "***");
        //   ServiceInstance serviceInstance = Session.getInstance("***", "***", "***");
            Folder rootFolder = serviceInstance.getRootFolder();
            ManagedEntity mes = new InventoryNavigator(rootFolder).searchManagedEntity("VirtualMachine", "java");
            if (mes == null) {
                serviceInstance.getServerConnection().logout();
                throw new Exception();
            } else {
                VirtualMachine virtualMachine = (VirtualMachine) mes;
                GuestInfo guestInfo=virtualMachine.getGuest();
                //虚拟机关联主机
                ManagedObjectReference mor = new ManagedObjectReference();
                mor.setType("HostSystem");
                mor.setVal(virtualMachine.getRuntime().getHost().getVal());
                HostSystem result =  new HostSystem(serviceInstance.getServerConnection(),mor);
                System.out.println("hostname is:"+ result.getName());
                //自定义网卡信息
                GuestNicInfo[] guestNicInfos=guestInfo.getNet();
                if(guestNicInfos!=null && guestNicInfos.length>0){
                    for(GuestNicInfo guestNicInfo:guestNicInfos){
                        System.out.println(guestNicInfo.getMacAddress());//mac 地址
                        System.out.println(guestNicInfo.getDeviceConfigId());//deviceConfigId
                        System.out.println(guestNicInfo.getNetwork());//网络组
                        String[] ipAddress=guestNicInfo.getIpAddress();
                        if(ipAddress!=null && ipAddress.length>0){
                            for(String address:ipAddress){
                                if(isIp(address)){
                                    System.out.println(address);//Ip 地址
                                }
                            }
                        }
                        NetDnsConfigInfo netDnsConfigInfo=guestNicInfo.getDnsConfig();
                        String[] dnsAddress=netDnsConfigInfo.getIpAddress();
                       if(dnsAddress!=null && dnsAddress.length>0){
                           for(String address:dnsAddress){
                               if(isIp(address)){
                                   System.out.println(address);//dns 地址
                               }
                           }
                       }
                    }
                }


            }
        }catch (Exception e){
            e.printStackTrace();
            return;
        }
    }
    //判断IP地址是否合法
    public static boolean isIp(String addr)
    {
        if(addr.length() < 7 || addr.length() > 15 || "".equals(addr))
        {
            return false;
        }
        /**
         * 判断IP格式和范围
         */
        String rexp = "([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}";

        Pattern pat = Pattern.compile(rexp);

        Matcher mat = pat.matcher(addr);

        boolean ipAddress = mat.find();

        return ipAddress;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值