操纵Java来实现域名和IP地址转换的操作[Java编程]
本文“操纵Java来实现域名和IP地址转换的操作[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
对我们普通用户而言,形象化的标记要比一捆单调的数字编码要好记得多.比方,我们会很简单地记着字符串“www.oscar.com”,却很难记着206.17.191.12.本文扼要地介绍了Internet命名法则和地址的划分约定,然后介绍了若何操纵Java语言完成标记名(上面的字符串)和IP地址(上面的数字串)之间的转换工作,并给出一个实例,查抄可拜候的远程主机.
Internet命名法则和地址划分约定
在Internet上,标记名(symbolic Name)用来命名主机和网络,比方www.bianceng.cn.这些标记名的“学名”叫做“Domain Name”,即域名.固然域名对我们来说便利得多,但在它们用作通信标识之前,必须转换为IP地址(Internet Protocol Address).IP地址是一个32位的标识符,包含一个网络标识和主机标识,以便唯一地标识主机和网络.域名转换为IP地址的工作是由专门的系统完成,这就是域名系统(Domain Name System??DNS).
同一网络或差别网络主机之间举行数据的发送/接纳时,IP地址就开始起作用了.假如是同一网络中主机之间的数据传送,则仅操纵IP地址中的主机标识,来肯定网络中主机的所在.另一方面,假如是差别网络中主机之间的通信,则要同时操纵主机标识和网络标识来肯定呼应的主机.定位网络和主机,再举行数据传送的历程称为路由(routing).网络中的路由器(router)包含一个IP层(IP Layer),它负责履行路由算法,将数据包发送到目的地.在Internet上,将数据库发送到目的地是IP层份内之事.
IP地址是Internet注册部门??Network Information Center(网络信息中央??NIC)分配给差别的组织,各组织再下放给多个部门.IP地址要占用4个字节.
经过路由的数据包,也有大概会在传送的历程中丧失.于是,人们就操纵底层传输协议,来举行数据传送精确与否的判断.比方,TCP用于查抄错误或数据丧失,并在出错时,再次发送呼应的数据库,直至对方主机精确接纳为止.
目前,总计有3类(或3个级别)的IP地址:A类、B类和C类.别的,还有一类IP地址叫作“Multicast”,在某些Internet主机上利用.这些差别类别的IP地址满意了差别组织的需求.比方,A类地址主要用于主机数目超越65536的大型网络系统;B类地址则用于中型网络系统,其主机数大于255,却小于65536;C类地址则用于那些主机数目小于256的小型网络.
差别类别地址的十进制表示以下,此中的十进制数代表答应的地址范围:
A类
网络ID 主机ID
1~127 0~255 0~255 0~255
B类
网络ID 主机ID
128~191 0~255 0~255 0~255
C类
网络ID 主机ID
191~233 0~255 0~255 0~254
Multicast
191~233 0~255 0~255 0~254
数字0和255还有特别的含义.数字0是为那些地址不明的主机保存的.某些情形下,如错误的系统配置,主机标识或网络标识不明的情形也会发生.比方,某个主机的C类地址为0.0.0.42,则阐明其主机标识为42,而它所处网络的网络标识则是“未知数”0.?
数字255则用于广播发送方法,即一台主机发出的信息会传送到网络中全部的主机上.
得到IP地址
为了得到所在网络的IP地址,大概网络中其他主机的IP地址,我们可以用java.net软件包中的java.net.InetAddress类加以实现.比方,假如我们但愿得到所在网络的IP地址,我们可以调用InetAddress类中的getLocalHost()和getAddress()办法.getLocalHost()返回一个InetAddress对象;而getAddress()则返回一个长度为4的字节数组(IP地址为4个字节).?
假如要编制一个基于网络的利用程序,我们大概需求知道预备运行这个程序的主机的域名或IP地址.假如这个程序只在我们自己的主机上运行,并且我们也知道主机的域名或IP地址,则我们便可以这样举行:定义一个字符串常量便可,如:string localHost=“my-machine-name”.但大多情形下,我们编制
/*
* Program:sample1.java
*/
import java.net.*/;
public class GetName {
public static void main (String argv〔〕) throws Exception {
InetAddress host=null;
host=InetAddress.getLocalHost();
System.out.println(host.getHostName());
}}
的程序将在差别的主机上运行,这样才有实用代价.那么,象上面那样,定义一个localHost常量的办法就不太好用了.我们但愿利用程序可以自动检测得到当前主机的域名.下面的程序阐明了若何完成这一工作.
以上是“操纵Java来实现域名和IP地址转换的操作[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |