Frage Konvertieren einer IP-Adresse in einen Hostnamen


In meiner Java-Anwendung, wenn der Benutzer die IP-Adresse eingibt, müssen wir den Host-Namen anzeigen, wenn der Host-Name angegeben wird, müssen wir die IP des Hosts anzeigen.

Zum Beispiel, wenn der Benutzer eine IP-Adresse wie folgt eingibt 173.194.36.37 Anwendung sollte angezeigt werden google.com und umgekehrt.

Gibt es irgendwelche Dienstprogramme, um diese Operation durchzuführen?


10
2018-05-11 15:31


Ursprung


Antworten:


Wenn Sie in Java codieren, versuchen Sie es mit InetAddress

InetAddress addr = InetAddress.getByName("173.194.36.37");
String host = addr.getHostName();
System.out.println(host);

18
2018-05-11 15:35



Was du suchst, ist etwas, das heißt DNS. Dieses Projekt scheint genau das zu sein, wonach du suchst.


2
2018-05-11 15:34



Das auf Sie bezogene Projekt SomeKittens sieht aus wie ein vollständiger DNS-Server, der in Java geschrieben ist, was mehr ist, als Sie benötigen. Schau es dir an java.net.InetAddress:

java.net.InetAddress.getByName("example.com").getHostAddress();

2
2018-05-11 15:43



In Bezug auf Domain-Namen gibt es keine integrierten Dienstprogramme, nein. Sie kann Erhalte den Namen eines Hosts (aber nicht den Domain-Namen) mit getCanonicalHostName()  auf InetAddress - das sollte funktionieren. Die beste Antwort hier verbunden mit dem DNS Java Projekt, das Ihnen den Domainnamen bringt.

Beispielcode zum Herstellen einer Verbindung mit einem der Google-Server und Abrufen des Hostnamens von einem der Server von Google

public class GetHostName {
public static void main(String[] args) throws Exception {
    InetAddress address = InetAddress.getByAddress(new byte[]{74, 125,(byte) 227, 7});
    System.out.println(address.getCanonicalHostName());
}
}

0
2018-05-11 15:36