查找并报告网络地址的问题 211.157.102.21 --->www.csdn.net不是一一对应的! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 能进一步解释一下原因吗?谢谢我的程序中用域名得到了这样的IP地址,却对应不上?我的程序段如下: . . . InetAddress host; host=InetAddress.getByName(args[0]); . . System.out.println("主机 "+host.getHostName()+"的IP地址为:"); bytes=host.getAddress();//于此处得到IP for(int i=0;i<4;i++) fourBytes[i]=bytes[i]&0xff;//是这里处理的有问题吗? System.out.println(fourBytes[0]+"."+ fourBytes[1]+"."+fourBytes[2]+"."+fourBytes[3]); . . . 我用ping www.csdn.net 结果也是211.157.102.21说明正确。 应该区分服务和服务器的区别。一个服务器可以提供多种服务。ping www.csdn.net 结果是211.157.102.21ping www.csdn2.net 结果也有可能是211.157.102.21 服务是通过端口区别的IP则标识服务器主机的全网唯一地址,有域名与之一一对应。通过域名得到IP的程序已实现了,如上面代码。我现在想通过IP地址得到域名,却在InetAddress中找不到合适的方法,请问该怎么办? InetAddress.getByAddress(addrIpByte[]).getCanonicalHostName();试试看?! 谢谢你,但是我在程序中第39行加了一句System.out.println(ipNum+"所对应的主机名为:"+ InetAddress.getByAddress(addrIpByte[]).getCanonicalHostName());编译给出了如下信息:DNSClient2.java:39: '.class' expected InetAddress.getByAddress(addrIpByte[]).getCanonicalHostName());/// ^DNSClient2.java:39: ')' expected InetAddress.getByAddress(addrIpByte[]).getCanonicalHostName());/// ^DNSClient2.java:39: cannot resolve symbolsymbol : class addrIpBytelocation: class DNSClient2 InetAddress.getByAddress(addrIpByte[]).getCanonicalHostName());/// ^DNSClient2.java:39: unexpected typerequired: valuefound : class InetAddress.getByAddress(addrIpByte[]).getCanonicalHostName());/// ^4 errors String strHost = InetAddress.getByAddress("192.169.1.4:80".getBytes()).getCanonicalHostName();System.out.println(strHost);结果好像不是你要的! 好像差不多了。再请问getByAddress方法的参数是什么类型?返回什么类型? static InetAddress getByAddress(byte[] addr) 谢谢各位谢谢lotofu(骆驼) 对局部变量与全局变量效率问题有点疑惑 ireport 关于背景图片的奇怪问题!不知道有人知道吗?【有图片】有原码 log4j 是否可以输出到excel中,有没有什么的appender 问个java图形方面的问题 对象上转型问题 怎么在netbeans中创建applet文件还有html文件? 请问B-tree如何实现 关于JSplitPane的devider location 请问UtralEdit的注册码那里有? 啊,啊,救命啦!!! jb8编译得exe文件为什么在98下运行出现了问题? 请问,如何配置java的远行环境
能进一步解释一下原因吗?谢谢我的程序中用域名得到了这样的IP地址,却对应不上?
我的程序段如下:
.
.
.
InetAddress host;
host=InetAddress.getByName(args[0]);
.
.
System.out.println("主机 "+host.getHostName()+"的IP地址为:");
bytes=host.getAddress();//于此处得到IP
for(int i=0;i<4;i++)
fourBytes[i]=bytes[i]&0xff;//是这里处理的有问题吗?
System.out.println(fourBytes[0]+"."+
fourBytes[1]+"."+fourBytes[2]+"."+fourBytes[3]);
.
.
.
说明正确。
一个服务器可以提供多种服务。
ping www.csdn.net 结果是211.157.102.21
ping www.csdn2.net 结果也有可能是211.157.102.21
IP则标识服务器主机的全网唯一地址,有域名与之一一对应。通过域名得到IP的程序已实现了,如上面代码。
我现在想通过IP地址得到域名,却在InetAddress中找不到合适的方法,
请问该怎么办?
试试看?!
谢谢你,但是
我在程序中第39行加了一句
System.out.println(ipNum+"所对应的主机名为:"+
InetAddress.getByAddress(addrIpByte[]).getCanonicalHostName());编译给出了如下信息:
DNSClient2.java:39: '.class' expected
InetAddress.getByAddress(addrIpByte[]).getCanonicalHo
stName());///
^
DNSClient2.java:39: ')' expected
InetAddress.getByAddress(addrIpByte[]).getCanonicalHo
stName());/// ^
DNSClient2.java:39: cannot resolve symbol
symbol : class addrIpByte
location: class DNSClient2
InetAddress.getByAddress(addrIpByte[]).getCanonicalHo
stName());///
^
DNSClient2.java:39: unexpected type
required: value
found : class
InetAddress.getByAddress(addrIpByte[]).getCanonicalHo
stName());///
^
4 errors
System.out.println(strHost);结果好像不是你要的!
再请问
getByAddress方法的参数是什么类型?返回什么类型?
谢谢lotofu(骆驼)