/* * Copyright (C) 2012 Intel Corporation * All rights reserved. */ package com.intel.mtwilson.setup.cmd; import com.intel.dcsg.cpg.console.Command; import com.intel.mtwilson.setup.SetupContext; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.List; import java.util.ArrayList; import java.util.HashSet; import java.util.Enumeration; import org.apache.commons.configuration.Configuration; /** * * @author jbuhacoff */ public class SetMtWilsonURL implements Command { private Configuration options = null; @Override public void setOptions(Configuration options) { this.options = options; } @Override public void execute(String[] args) throws Exception { List<String> list = getLocalAddresses(); for(int i=0; i<list.size(); i++) { System.out.println(String.format("[%2d] %s", i+1, list.get(i))); } } public List<String> getLocalAddresses() throws SocketException { ArrayList<String> list = new ArrayList<String>(); Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); if( en == null ) { return list; } HashSet<String> set = new HashSet<String>(); while( en.hasMoreElements() ) { NetworkInterface intf = en.nextElement(); Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); while( enumIpAddr.hasMoreElements() ) { InetAddress addr = enumIpAddr.nextElement(); // skip IPv6 addresses if( addr.getAddress().length == 4 ) { set.add(addr.getHostAddress()); set.add(addr.getHostName()); } } } list.addAll(set); return list; } }