Java 它是一个从IP打印主机名的程序,但不打印主机名
为什么程序传递的是IP地址而不是反向DNS查找的结果?通过阅读Java API文档(你读过吗?)。我建议通过阅读Java API文档尝试使用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能够执行反向
getCanonicalHostName()
(你读过吗?)。我建议尝试使用getCanonicalHostName()
IP地址204.29.207.217没有PTR记录
IP地址204.29.207.217没有PTR记录
您的代码正在工作:问题是
InetAddress.getByName
只返回主机名
- 如果存在(即反向查找返回主机名)
- 如果JVM能够执行反向查找(来自文档“[…”),如果不允许该操作,它将返回IP地址[…]的文本表示形式
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地址[…]的文本表示形式
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记录。