■ Reference http://cc.wariate.jp
package hello.java.net;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class InetAddressLookUpMain {
 // see http://cc.wariate.jp/
 static String baseHost = "cc.wariate.jp";
 static String[] locales = "JP,US,KR,CH,HK".split(",");
 public static String getCountry(String s) throws UnknownHostException {
 InetAddress inetAddr = InetAddress.getByName(s); // throws
 // UnknownHostException
 byte[] byteAddr = inetAddr.getAddress();
 StringBuffer sb = new StringBuffer();
 for (int i = (byteAddr.length - 1); i >= 0; i--) {
 int unsignedByte = byteAddr[i] < 0 ? byteAddr[i] + 256
 : byteAddr[i];
 sb.append(unsignedByte + ".");
 }
 for (int n = 0; n < locales.length; n++) {
 String country = locales[n];
 String lookupHost = sb.toString() + country.toLowerCase() + "."
 + baseHost;
 try {
 InetAddress.getByName(lookupHost);
 return (locales[n]);
 } catch (UnknownHostException e) {
 // e.printStackTrace();
 }
 }
 return null;
 }
 public static void main(String[] args) throws Exception {
 System.out.println(getCountry("www.yahoo.co.jp"));
 System.out.println(getCountry("www.ibm.com"));
 System.out.println(getCountry("daum.net"));
 System.out.println(getCountry("weibo.com"));
 System.out.println(getCountry("aho"));
 }
}
result
JP
US
KR
HK
Exception in thread "main" java.net.UnknownHostException: aho: aho
 at java.net.InetAddress.getAllByName0(InetAddress.java:1270)
 at java.net.InetAddress.getAllByName(InetAddress.java:1197)
 at java.net.InetAddress.getAllByName(InetAddress.java:1119)
 at java.net.InetAddress.getByName(InetAddress.java:1069)
 at hello.java.net.InetAddressLookUpMain.getLocale(InetAddressLookUpMain.java:14)
 at hello.java.net.InetAddressLookUpMain.main(InetAddressLookUpMain.java:55)
        Recommended Posts