将IP地址转换为主机名

时间:2012-05-11 15:31:30

标签: java network-programming

在我的java应用程序中,如果用户输入IP,我们需要显示主机名,如果给出了主机名,那么我们需要显示主机的IP。

例如,如果用户输入的地址如173.194.36.37,应用程序应显示google.com,反之亦然。

是否有可用于执行此操作的实用程序?

5 个答案:

答案 0 :(得分:18)

如果您使用Java编码,请尝试使用InetAddress

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

答案 1 :(得分:2)

您正在寻找的是DNSThis project似乎就是你要找的东西。

答案 2 :(得分:2)

项目SomeKittens称你看起来像一个用Java编写的完整DNS服务器,可能比你需要的更多。看看java.net.InetAddress

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

答案 3 :(得分:0)

就域名而言,没有内置实用程序,没有。您可以使用InetAddress上的getCanonicalHostName()获取主机名称(但不是域名) - 这应该有效。此处的最佳答案与DNS Java项目相关联,该项目将为您提供域名。

下面给出了连接到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());
}
}

答案 4 :(得分:0)

import java.net.*;
import java.util.*;
import java.io.*;

public class DNS

 {
    public static void main(String[] args) throws Exception

    {
        Scanner s = new Scanner(System.in);

        System.out.println("Enter the Domain`enter code here` Name");
        String domainName = s.nextLine();
        System.out.println("Domain into IP");
        System.out.println(InetAddress.getByName(domainName).getHostAddress());

        System.out.println("Enter the IP Name");
        String ipName = s.nextLine();
        System.out.println("IP into Domain");
        System.out.println(InetAddress.getByName(ipName).getHostName());        

    }
 }