当前位置:编程学习 > JAVA >>

关于InetAddress类的getHostName()的问题,谢谢!!!

我用java的如下方法:
InetAddress add= InetAddress.getByName(ip);
String hostname=add.getHostName();
可以得到同网段的其他主机的主机名,但是其他网段的主机名得不到得到的hostname是ip地址。

而我用C#的DNS类的Dns.GetHostByAddress()可以得到其他网段的主机名。

这是为什么呢?java如何实现获得其他网段的主机名呢?谢谢!!! --------------------编程问答-------------------- --------------------编程问答-------------------- InetAddress getByName(String host)是在给定主机名的情况下确定主机的 IP 地址。host是主机名 
--------------------编程问答-------------------- 什么意思呢?
不同网段 不知道 www.csdn.net算不算不同网段的地址
InetAddress add= InetAddress.getByName("www.csdn.net");
String hostname=add.getHostAddress(); --------------------编程问答--------------------
引用 2 楼 chenhaijing 的回复:
InetAddress getByName(String host)是在给定主机名的情况下确定主机的 IP 地址。host是主机名

获得远程主机地址的方法是:getHostName()
getByName只是得到一个InetAddress  --------------------编程问答-------------------- getByName
public static InetAddress getByName(String host)
                             throws UnknownHostException在给定主机名的情况下确定主机的 IP 地址。 
主机名可以是机器名(如 "java.sun.com"),也可以是其 IP 地址的文本表示形式。如果提供字面值 IP 地址,则仅检查地址格式的有效性。 

对于以字面值 IPv6 地址指定的 host,在 RFC 2732 中定义的形式或在 RFC 2373 中定义的字面值 IPv6 地址格式都可以接受。IPv6 范围地址也受支持。有关 IPv6 范围地址的描述,请参见这里。 

如果主机为 null,则返回表示回送接口地址的 InetAddress。请参阅 RFC 3330 的第 2 节和 RFC 2373 的第 2.5.3 节。 


参数:
host - 指定的主机,或 null。 
返回:
给定主机名的 IP 地址。 
抛出: 
UnknownHostException - 如果找不到 host 的 IP 地址,或者 scope_id 是为全局 IPv6 地址指定的。 
SecurityException - 如果安全管理器存在并且其 checkConnect 方法不允许进行该操作
--------------------编程问答-------------------- 他是想问JAVA如何通过IP获得其他网段的主机名Hostname
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,