Java 如何在android中获取ip地址的主机名?

Java 如何在android中获取ip地址的主机名?,java,android,networking,ip,hostname,Java,Android,Networking,Ip,Hostname,我想制作一个小的android应用程序,从连接的LAN网络获取ip地址和主机名。我有一个运行良好的代码,可以在已连接的LAN网络中获取ip地址,但我不知道如何获取其ip地址的主机名。我需要更改代码的地方。对不起,英语不好 这是我在局域网中获取ip地址的代码 字符串连接=”; 地址主机; 尝试 { host=InetAddress.getByName(“192.168.1.1”); 字节[]ip=host.getAddress(); 对于(inti=1;iUse.getHostname() 你的主

我想制作一个小的android应用程序,从连接的LAN网络获取ip地址和主机名。我有一个运行良好的代码,可以在已连接的LAN网络中获取ip地址,但我不知道如何获取其ip地址的主机名。我需要更改代码的地方。对不起,英语不好

这是我在局域网中获取ip地址的代码

字符串连接=”;
地址主机;
尝试
{
host=InetAddress.getByName(“192.168.1.1”);
字节[]ip=host.getAddress();
对于(inti=1;iUse.getHostname()


你的主机文件中有哪些条目看看这个它会解决你的问题:Shreyas,我添加了这个InetAddress.getByName(“192.168.1.2”).getHostName()打开链接后,仍然给我相同的ip 192.168.1.2否,他们给我的ip与我在getByName方法中传递的相同。主机名将由DNS服务器提供。您连接到哪个DNS服务器?当我传递“192.168.1.4”时,它给我的ip地址与我传递的“192.168.1.4”相同。
String connections = "";
    InetAddress host;
    try
    {
        host = InetAddress.getByName("192.168.1.1");
       byte[] ip = host.getAddress();
       for(int i = 1; i <= 254; i++)
        {
            ip[3] = (byte) i;
            InetAddress address = InetAddress.getByAddress(ip);

            if(address.isReachable(100))
            {


                System.out.println(address + " machine is turned on and can be pinged "+address.getCanonicalHostName());
                connections+= address+"\n";
            }
            else if(!address.getHostAddress().equals(address.getHostName()))
            {
                System.out.println(address + " machine is known in a DNS lookup");
                System.out.println(address.getHostAddress()+"host Name:"+ address.getHostName());
            }

        }
        tv.setText(connections);

    }
    catch(UnknownHostException e1)
    {
        e1.printStackTrace();
    }
    catch(IOException e)
    {
        e.printStackTrace();
    }
InetAddress addr = InetAddress.getByName("192.168.1.1");
String host = addr.getHostName();
System.out.println(host);