Obtenir le pays à partir de l'adresse IP (Java)

■ Référence 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"));
 }
}

résultat

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

Obtenir le pays à partir de l'adresse IP (Java)
Trouvez la classe d'adresse et le type d'adresse à partir de l'adresse IP avec Java
Obtenez "2-4, 7, 9" de [4, 7, 9, 2, 3]
Obtenir des informations sur l'appelant à partir de la trace de la pile (Java)
[Java] Obtenir des informations sur les balises à partir de fichiers musicaux
Obtenir l'historique du serveur Zabbix en Java
Trouvez la classe d'adresse et le type d'adresse à partir de l'adresse IP avec Java [décoction n ° 2]
Je souhaite obtenir l'adresse IP lors de la connexion au Wi-Fi avec Java
Traduire l'adresse IP
Comment obtenir une classe depuis Element en Java
Obtenez unixtime (secondes) de ZonedDateTime dans Scala / Java
[Java] Obtenir plusieurs valeurs à partir d'une valeur de retour
[Java] Récupère des valeurs de manière aléatoire dans un tableau
[Java] Obtenir KFunction à partir de la méthode / du constructeur en Java [Kotlin]
Appeler Java depuis JRuby
Configuration de l'adresse IP CentOS
Changements de Java 8 à Java 11
Somme de Java_1 à 100
[Java] Obtenir des dates diverses
Évaluer la source Java à partir de Java
Accédez à API.AI depuis Java
[Java] Initialisation, ajout, acquisition
De Java à Ruby !!
[Kotlin] Comment obtenir l'adresse IP et l'agent utilisateur
Obtenez les prévisions météorologiques de Watson Weather Company Data avec Java simple
Accédez à l'abréviation à partir de 5 exemples de listes Java en italique
[Java] Obtenir le jeu de caractères avec Apathce Tika / Initialiser la chaîne à partir du jeu de caractères [Kotlin]
[Kotlin] Obtenez le constructeur / la méthode Java de KFunction et appelez-le
Obtenez facilement des entiers à partir des propriétés système en Java
Obtenir des attributs et des valeurs à partir d'un fichier XML en Java
Logiciel pratique CData (obtenir des données Twitter à partir de l'application console Java)
Obtenir une collection non vide à partir d'un flux facultatif avec java
Migration de Cobol vers JAVA
Obtenir des informations EXIF en Java
Java à partir du débutant, remplacer
Création d'index Elastic Search à partir de Java
Nouvelles fonctionnalités de Java7 à Java8
Connectez-vous de Java à PostgreSQL
[Java] Obtenir KClass en Java [Kotlin]
Java, instance à partir du débutant
Java à partir de débutant, héritage
La vie Java à partir de zéro
Utilisation de Docker depuis Java Gradle
De Java inefficace à Java efficace
JavaScript vu de Java
Exécuter des instructions non-Java à partir de Java
[Java] Obtenir des données de la base de données à l’aide du service singleton dans Spring (Boot)
[Java] Comment convertir du type String en type Path et obtenir le chemin