欢迎大家光临【无师自通-教程网】您的到来是我们的荣幸。本站提供
photoshop教程
,
ps教程
,
flash教程
,
cad教程
,
网页制作教程
,
excel教程
,
asp教程
,
vb教程
,
3d教程
,
c语言教程
,
html教程
,
coreldraw教程
,
dreamweaver教程
,
java教程
,
3dmax教程
等各种教程为主题的内容和服务,相信您会在这里找到您所需要的东东。无师自通伴您一生-谢谢您的光临!!
网站地图
设为首页
简繁切换
加入收藏
栏目待定
留言本站
您现在的位置:
无师自通-教程网
>>
程序设计
>>
JAVA教程
>>
WEB SERVICE
>> 教程正文
没有公告
图形图像教程
photoshop
Flash
3DS Max
CorelDraw
Fireworks
Illustrator
Maya
AutoCAD
网络应用教程
局域网教程
综合布线
系统集成
无盘网络组建
网络产品资料
网络风险评估
光纤通信
网络接入
程序设计教程
C语言教程
vb教程
C#教程
VC语言教程
C++教程
Java教程
数据库教程
Delphi教程
操作系统教程
WindowsXP
Linux
Win2003
Vista
Win2000
苹果系统
Dos教程
FreeBSD
办公软件教程
Word教程
Excel教程
Powerpoint
Wps教程
Office视频
系统相关
系统工具
杀毒查毒
WEB开发教程
Asp教程
Jsp教程
Php教程
Xml教程
Html教程
CSS教程
CGI-Perl教程
ASP.NET
教程: JAVA WEB SERVICE-利用Java完成域名和IP地址的转换
教程: JAVA WEB SERVICE-利用Java完成域名和IP地址的转换
利用Java完成域名和IP地址的转换
对我们普通用户而言,形象化的符号要比一捆枯燥的数字编码要好记得多。比如,我们会很容易地记住字符串“www.oscar.com”,却很难记住206.17.191.12。本文简要地介绍了Internet命名规则和地址的划分约定,然后介绍了如何利用Java语言完成符号名(上面的字符串)和IP地址(上面的数字串)之间的转换工作,并给出一个实例,检查可访问的远程主机。
· Internet命名规则和地址划分约定
在Internet上,符号名(symbolic Name)用来命名主机和网络,例如www.oscar.com。这些符号名的“学名”叫做“Domain Name”,即域名。虽然域名对我们来说方便得多,但在它们用作通信标识之前,必须转换为IP地址(Internet Protocol Address)。IP地址是一个32位的标识符,包括一个网络标识和主机标识,以便唯一地标识主机和网络。域名转换为IP地址的工作是由专门的系统完成,这就是域名系统(Domain Name SystemDNS)。
同一网络或不同网络主机之间进行数据的发送/接收时,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
· 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地址,则我们就可以这样进行:定义一个字符串常量即可,如:sing localHost=“my-machine-name”。但大多情况下,我们编制
/*
* Program:sample1.java
*/
import java.net.*/;
public class GetName {
public static void main (Sing argv〔〕) throws Exception {
InetAddress host=null;
host=InetAddress.getLocalHost();
System.out.println(host.getHostName());
}}
的程序将在不同的主机上运行,这样才有实用价值。那么,象上面那样,定义一个localHost常量的方法就不太好用了。我们希望应用程序能够自动检测得到当前主机的域名。下面的程序说明了如何完成这一工作。
InetAddress是java.net软件开发包中的一个“现成”的类。在上面的代码中,我们可以说,其中的变量host就是一个InetAddress;InetAddress.getLocalHost()返回一个InetAddress。例如,某个主机域名为“sample”,其IP地址为“128.118.2.10”,那么,InetAddress.getLocalHost()调用返回后,变量host的值就成了“sample/128.118.2.10”。如果只对其中的主机域名感兴趣,则可以调用getHostname()。
简单地说,IP地址是4个数字。为了得到数字形式的IP地址,我们可以将上面程序稍作改动。
/*
* Program:sample2.java
*/
import
[1]
[2]
下一页
教程录入:admin 责任编辑:admin
上一篇教程:
教程: JAVA WEB SERVICE-javascript与Java在浏览器中的交互
下一篇教程:
教程: JAVA WEB SERVICE-用Java 1.1建立联网的白板(2)
【字体:
小
大
】【
发表评论
】【
加入收藏
】【
告诉好友
】【
打印此文
】【
关闭窗口
】
access基础知识
|
设为首页
|
加入收藏
|
联系站长
|
友情链接
|
版权申明
|
管理登录
|
免责声明!本站资料大部分来自于互联网,其版权归原作者或其他合法者所有.如内容涉及或侵犯了您的权益,请通知本人,我将尽快处理!.欢迎您的光临。
辽ICP备07003958号