# HG changeset patch # User Yu Taninari # Date 1319473367 -32400 # Node ID 0c0da17b72b27edb4278e36fe6c8b79099206c16 # Parent accf5a6e11764bf5ac502f93689e50ff0c501f6c add IpV6.java diff -r accf5a6e1176 -r 0c0da17b72b2 src/myVncClient/IpV6.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/myVncClient/IpV6.java Tue Oct 25 01:22:47 2011 +0900 @@ -0,0 +1,78 @@ +package myVncClient; + +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.net.Inet6Address; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class IpV6 { + private HashMap> interfaceMap; + + public IpV6() { + interfaceMap = new HashMap>(); + } + + public void getInterface() { + interfaceMap.clear(); + try { + Enumeration iList = NetworkInterface + .getNetworkInterfaces(); + if (iList == null) { + System.out.println("notfound interface"); + } else { + while (iList.hasMoreElements()) { + NetworkInterface iface = iList.nextElement(); + Enumeration addrList = iface + .getInetAddresses(); + if (!addrList.hasMoreElements()) + continue; + ArrayList iaddress = new ArrayList(); + while (addrList.hasMoreElements()) + iaddress.add(addrList.nextElement()); + interfaceMap.put(iface, iaddress); + } + } + } catch (SocketException se) { + System.out.println("Error getting network interfaces: " + + se.getMessage()); + } + } + + public boolean match(String name) { + Pattern pattern = Pattern.compile("lo.*"); + Matcher matcher = pattern.matcher(name); + return matcher.matches(); + } + + public String getV6() { + boolean flag = false; + String name = null; + for (NetworkInterface n : interfaceMap.keySet()) { + if (!(match(n.getName()))) { + for (InetAddress a : interfaceMap.get(n)) { + if (a instanceof Inet6Address && !(flag)) { + System.out.println(a.getHostAddress()); + flag = true; + name = a.getHostAddress(); + } + } + } + } + return name; + } + + public HashMap> getInetfaceMap() { + return interfaceMap; + } + + public void setInterfaceMap( + HashMap> interfaceMap) { + this.interfaceMap = interfaceMap; + } + +}