001 package com.khubla.pragmatach.plugin.adminapp; 002 003 import java.net.InterfaceAddress; 004 import java.net.NetworkInterface; 005 import java.util.ArrayList; 006 import java.util.Enumeration; 007 import java.util.List; 008 009 import com.khubla.pragmatach.framework.annotation.Controller; 010 import com.khubla.pragmatach.framework.annotation.Route; 011 import com.khubla.pragmatach.framework.annotation.View; 012 import com.khubla.pragmatach.framework.api.PragmatachException; 013 import com.khubla.pragmatach.framework.api.Response; 014 015 /** 016 * @author tome 017 */ 018 @Controller(name = "pragmatachShowNetworkController") 019 @View(view = "pragmatach/admin/network.html") 020 public class ShowNetworkController extends SecuredAdminController { 021 /** 022 * ips of this host 023 */ 024 private List<String> ips; 025 026 private List<String> findIPs() throws PragmatachException { 027 try { 028 final List<String> ret = new ArrayList<String>(); 029 final Enumeration<NetworkInterface> enumer = NetworkInterface.getNetworkInterfaces(); 030 while (enumer.hasMoreElements()) { 031 final NetworkInterface networkInterface = enumer.nextElement(); 032 for (final InterfaceAddress interfaceAddress : networkInterface.getInterfaceAddresses()) { 033 if (false == interfaceAddress.getAddress().isLoopbackAddress()) { 034 final String ip = interfaceAddress.getAddress().getHostAddress(); 035 if (false == ip.contains(":")) { 036 ret.add(ip); 037 } 038 } 039 } 040 } 041 return ret; 042 } catch (final Exception e) { 043 throw new PragmatachException("Exception in findIPs", e); 044 } 045 } 046 047 public List<String> getIps() { 048 return ips; 049 } 050 051 @Route(uri = "/pragmatach/admin/network") 052 public Response render() throws PragmatachException { 053 ips = findIPs(); 054 return super.render(); 055 } 056 057 public void setIps(List<String> ips) { 058 this.ips = ips; 059 } 060 }