converter um endereço IP para o nome da máquina

na minha aplicação java, se o utilizador entrar no IP, precisamos de mostrar o nome da máquina, se o nome da máquina for indicado, então precisamos de mostrar o IP da máquina.

por exemplo, se o Utilizador introduzir um endereço IP como 173.194.36.37, a aplicação deverá mostrar google.com e o verso do vice.

Existem alguns utilitários disponíveis para realizar esta operação?

Author: Anil Kumar C, 2012-05-11

4 answers

Se estiver a codificar em Java, tente usar InetAddress

InetAddress addr = InetAddress.getByName("173.194.36.37");
String host = addr.getHostName();
System.out.println(host);
 18
Author: ewein, 2012-05-11 15:46:22

O que procuras é algo chamado DNS. Este projecto parece ser o que procuras.

 2
Author: SomeKittens, 2012-05-11 15:34:01

O projecto que o SomeKittens lhe referiu parece um servidor DNS completo escrito em Java, que pode ser mais do que necessita. Dê uma olhada java.net.InetAddress:

java.net.InetAddress.getByName("example.com").getHostAddress();
 2
Author: Brian, 2012-05-11 15:59:33

Em termos de nome de domínio, não existem utilitários construídos, no. You can get the name of a host (but not the domain name) by using getCanonicalHostName() on InetAddress - deve funcionar. A melhor resposta aqui ligada ao projetoDNS Java , que lhe dará o nome do domínio.

O código de exemplo para se ligar a, e obter o nome da máquina, um dos servidores do Google é indicado abaixo:

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
Author: Jon, 2012-05-11 17:10:31