源代码:
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;
}
}