黑马程序员技术交流社区
标题:
IP疑惑
[打印本页]
作者:
--☆伟☆--
时间:
2012-6-3 20:50
标题:
IP疑惑
public static void main(String[] args) throws Exception
{
InetAddress i=InetAddress.getByName("WILL-PC");
InetAddress p=InetAddress.getByName("192.168.0.16");
System.out.println(i.toString());
System.out.println(p.toString());
}
运行结果:
WILL-PC/192.168.0.16
/192.168.0.16
这里面的InetAddress p=InetAddress.getByName("192.168.0.16");其中的"192.168.0.16"不是IP地址么,为什么方法是getByName
还有定义的InetAddress()对象i和P有什么不同(两者调用toString方法后不同)
作者:
张亭
时间:
2012-6-3 21:01
本帖最后由 张亭 于 2012-6-3 21:04 编辑
楼主可以好好看下API文档:
public static InetAddress getByName(String host)
在给定主机名的情况下确定主机的 IP 地址。
主机名可以是机器名(如 "java.sun.com"),
也可以是其 IP 地址的文本表示形式
。如果提供字面值 IP 地址,则仅检查地址格式的有效性。
对于以字面值 IPv6 地址指定的 host,在 RFC 2732 中定义的形式或在 RFC 2373 中定义的字面值 IPv6 地址格式都可以接受。IPv6 范围地址也受支持。
i是通过主机名的方式得出的,hostname="WILL-PC"
p是通过ip地址得出的,hostname=null
另外,InetAddress 类复写了toString方法:
public String toString() {
return ((hostName != null) ? hostName : "") + "/" + getHostAddress();
}
就是说,有hostName 的话格式为:hostName /ip地址
没有的话: /ip地址
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2