Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 它是一个从IP打印主机名的程序,但不打印主机名_Java_Dns - Fatal编程技术网

Java 它是一个从IP打印主机名的程序,但不打印主机名

Java 它是一个从IP打印主机名的程序,但不打印主机名,java,dns,Java,Dns,为什么程序传递的是IP地址而不是反向DNS查找的结果?通过阅读Java API文档(你读过吗?)。我建议通过阅读Java API文档尝试使用getCanonicalHostName()(你读过吗?)。我建议尝试使用getCanonicalHostName()IP地址204.29.207.217没有PTR记录 IP地址204.29.207.217没有PTR记录 您的代码正在工作:问题是InetAddress.getByName只返回主机名 如果存在(即反向查找返回主机名) 如果JVM能够执行反向

为什么程序传递的是IP地址而不是反向DNS查找的结果?

通过阅读Java API文档(你读过吗?)。我建议通过阅读Java API文档尝试使用
getCanonicalHostName()

(你读过吗?)。我建议尝试使用
getCanonicalHostName()

IP地址204.29.207.217没有PTR记录


IP地址204.29.207.217没有PTR记录


您的代码正在工作:问题是
InetAddress.getByName
只返回主机名

  • 如果存在(即反向查找返回主机名)
  • 如果JVM能够执行反向查找(来自文档“[…”),如果不允许该操作,它将返回IP地址[…]的文本表示形式
在您的情况下,对给定IP地址的反向DNS查找不会返回结果:

package networking;
import java.net.*;
public class HostIpAddess {
    public static void main(String args[]){
        try {
            InetAddress address = InetAddress.getByName("204.29.207.217");
            System.out.println("IP Name:"+address.getHostName());
        }catch (UnknownHostException ex) {
            System.out.println("Error");
        }
    }
}

您可以在

执行测试查找,因为代码正在工作:问题是
InetAddress.getByName
只返回主机名

  • 如果存在(即反向查找返回主机名)
  • 如果JVM能够执行反向查找(来自文档“[…”),如果不允许该操作,它将返回IP地址[…]的文本表示形式
在您的情况下,对给定IP地址的反向DNS查找不会返回结果:

package networking;
import java.net.*;
public class HostIpAddess {
    public static void main(String args[]){
        try {
            InetAddress address = InetAddress.getByName("204.29.207.217");
            System.out.println("IP Name:"+address.getHostName());
        }catch (UnknownHostException ex) {
            System.out.println("Error");
        }
    }
}

您可以在

它在做什么?抛出异常?它说什么?它打印什么?我看到两个潜在错误。1)IP断开连接。2)IP不存在。此程序正在运行,它正在打印IP地址…..它应该打印主机名。您可能还需要
导入java.lang.*
导入java.util.*
@fireshadow52无需导入
lang
包。代码不使用
util
包的任何类。它在做什么?抛出一个例外?上面说什么?否则它会打印什么?我看到两个潜在的错误。1) IP已断开。2) IP不存在。此程序正在运行,正在打印IP地址…..bt它应该打印主机名。您可能还需要
导入java.lang.*
导入java.util.*
@fireshadow52无需导入
lang
包。代码不使用
util
包的任何类。由于IP没有主机名,因此
getCanonicalHostName()
的行为与
getHostName()
的行为完全相同。如文档所述,它将返回IP地址的文本表示形式。由于IP没有主机名,因此
getCanonicalHostName()
的行为与
getHostName()
的行为完全相同。如文件所述,它将返回IP地址的文本表示形式。如果使用IP 137.254.16.66运行代码,它将返回www.java.com。结论:您的代码是正确的。测试它的ip没有PTR记录。如果使用ip 137.254.16.66运行代码,它将返回www.java.com。结论:您的代码是正确的。您测试它的ip没有PTR记录。