没有合适的资源?快使用搜索试试~ 我知道了~
Java网络编程从入门到精通(1):Internet地址概述 所有连入Internet的 ....doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 73 浏览量
2022-06-10
13:11:20
上传
评论
收藏 141KB DOC 举报
温馨提示
试读
21页
Java网络编程从入门到精通(1):Internet地址概述 所有连入Internet的 ...
资源推荐
资源详情
资源评论
Java 网络编程从入门到精通(1): Internet 地址概述
所有连入 Internet 的终端设备(包括计算机、PDA、打印机以及其他的电
子设备)都有一个唯一的索引,这个索引被称为 IP 地址。现在 Internet 上的
IP 地址大多由四个字节组成,这种 IP 地址叫做 IPv4.除了这种由四个字节组成
的 IP,在 Internet 上还存在一种 IP,这种 IP 由 16 个字节组成,叫做
IPv6.IPv4 和 IPv6 后面的数字是 Internet 协议(Internet Protocol,IP)的
版本号。
IPv4 地址的一般表现形式为:X.X.X.X.其中 X 为 0 到 255 的整数。这
四个整数用“。”隔开。从理论上说,IPv4 地址可以表示 2 的 32 次幂,也就是
4,294,967,296 个 IP 地址,但由于要排除一些具有特殊意义的 IP(如
0.0.0.0、127.0.0.1、224.0.0.1、255.255.255.255 等),因此,IPv4 地
址可自由分配的 IP 数量要小于它所能表示的 IP 地址数量。
为了便于管理,人为地将 IPv4 划分为 A 类、B 类和 C 类 IP 地址。
A 类 IP 地址
范围:0.0.0.0 –– 127.255.255.255,标准的子网掩码是 255.0.0.0.
B 类 IP 地址
范围:128.0.0.0 –– 191.255.255.255,标准的子网掩码是
255.255.0.0.
C 类 IP 地址
范围:192.0.0.0 –– 223.255.255.255,标准的子网掩码是
255.255.255.0.
从上面的描述可看出,第一个字节在 0 和 127 之间的是 A 类 IP 地址,
在 128 和 191 之间的是 B 类 IP 地址,而在 192 和 223 之间的是 C 类 IP 地址。
如果两个 IP 地址分别和它们的子网掩码进行按位与后得到的值是一样的,就说
明这两个 IP 在同一个网段。下面是两个 C 类 IP 地址 IP1、IP2 和它们的子网掩
码。
IP1:192.168.18.10 子网掩码: 255.255.255.0
IP2:192.168.18.20 子网掩码: 255.255.255.0
这两个 IP 和它们的子网掩码按位与后,得到的值都是 192.168.18.0.
因此,IP1 和 IP2 在同一个网段。当用户使用 Modem 或 ADSL Modem 上网
后,临时分配给本机的 IP 一般都是 C 类地址,也就是说,第一个字节都会在
192 和 223 之间。
上面给出的 IP 地址和子网掩码只是标准的形式。用户也可以根据自己的
需要使用其他的 IP 和子网掩码,如 IP 地址设为 10.0.0.1,子网掩码设为
255.255.255.128.但为了便于分类和管理,在局域网中设置 IP 地址时,建议
按着标准的分类来设置。
IPv6 地址由 16 个字节组成,共分为 8 段。每一段由 16 个字节组成,
并用 4 个十六进制数表示,段与段之间用“:”隔开。如 A34E:DD3D:
1234:4400:A123:B231:A111:DDAA 是一个标准的 IPv6 地址。
IPv6 在两种情况下可以简写:
1. 以 0 开头的段可省略 0.如 A34E:003D:0004:4400:
A123:B231:A111:DDAA 可简写为 A34E: 3D: 4:4400:A123:
B231:A111:DDAA.
2. 连续出现 0 的多个段可使用“::”来代替多个为 0 的段。如 A34E:
0000:0000:0000:A123:B231:0:DDAA 可简写为 A34E::
A123:B231:0:DDAA.在使用这种简写方式时,“::”只能出现一次,如
果出现多次,IPv6 地址将会产生歧义。
在 IPv4 和 IPv6 混合的网络中,IPv6 地址的后四个字节可以被写成
IPv4 的地址格式。如 A34E::A123:B231:A111:DDAA 可以写成
A34E::A123:B231:161.17.221.170.当访问网络资源的计算机使用的
是 IPv4 的地址时,系统会自动使用 IPv6 的后四个字节作为 IPv4 的地址。
无论是 IPv4 地址,还是 IPv6 地址,都是很难记忆的。因此,为了使这
些地址便于记忆,Internet 的设计师们发明了 DNS(Domain Name
System,域名系统)。DNS 将 IP 地址和域名(一个容易记忆的字符串,如
microsoft)联系在一起,当计算机通过域名访问 Internet 资源时,系统首先
通过 DNS 得到域名对应的 IP 地址,再通过 IP 地址访问 Internet 资源。在这个
过程中,IP 地址对用户是完全透明的。如果一个域名对应了多个 IP 地址,DNS
从这些 IP 地址中随机选取一个返回。
域名可以分为不同的层次,如常见的有顶层域名、顶级域名、二级域名
和三级域名。
顶层域名
顶层域名可分为类型顶层域名和地域顶层域名。如
www.microsoft.com、www.w3c.org
中的 com 和 org 就是类型顶层域名,
它们分别代表商业(com)和非盈利组织(org)。而
www.dearbook.com.cn
中的 cn 就是地域顶层域名,它表示了中国(cn)。
主要的类型顶层域名有 com(商业)、edu(教育)、gov(政府)、int(国
际组织)、mil(美国军方)、net(网络部门)、org(非盈利组织)。大多
数国家都有自己的地域顶层域名,如中国(cn)、美国(us)、英国(uk)等。
顶级域名
如 www.microsoft.com
中的 microsoft.com 就是一个顶级域名。在
Email 地址的“@”后面跟的都是顶级域名,如
abc@126.com、mymail@sina.com
等。
二级域名
如 blog.csdn.net 就是顶级域名 csdn.net 的二级域名。有很多人认为
www.csdn.net
是顶级域名,其实这是一种误解。实际上 www.csdn.net
是
顶级域名 csdn.net 的二级域名。www.csdn.net
和 blog.csdn.net 在本质上
是一样的,只是我们已经习惯了使用 www 表示一个使用 HTTP 或 HTTPS 协议
的网址,因此,给人的误解就是 www.csdn.net
是一个顶级域名。
三级域名
如 abc.photo.163.com 就是二级域名 photo.163.com 的三级域名。
有很多 blog 或电子相册之类的网站都为每个用户分配一个三级域名。
Java 网络编程从入门到精通(2):创建 InetAddress
对象的四个静态方法
InetAddress 类是 Java
中用于描述 IP 地址的类。它在 java.net 包中。在
Java
中分别用 Inet4Address 和 Inet6Address 类来描述 IPv4 和 IPv6 的地址。
这两个类都是 InetAddress 的子类。由于 InetAddress 没有 public 的构造方
法,因此,要想创建 InetAddress 对象,必须得依靠它的四个静态方法。
InetAddress 可以通过 getLocalHost 方法得到本机的 InetAddress 对象,也
可以通过 getByName、getAllByName 和 getByAddress 得到远程主机的
InetAddress 对象。
一、getLocalHost 方法
使用 getLocalHost 可以得到描述本机 IP 的 InetAddress 对象。这个方法的定义如下:
publicstaticInetAddressgetLocalHost()throwsUnknownHo
stException
这个方法抛出了一个 UnknownHostException 异常,因此,必须在调用这个方法的
程序中捕捉或抛出这个异常。下面的代码演示了如何使用 getLocalHost 来得到本机的 IP 和
计算机名。
package inet;
importjava.net.*;
publicclassMyInetAddress1
{
publicstaticvoidmain(String[]args)throwsException
{
InetAddresslocalAddress=InetAddress.getLocalHost();
System.out.println(localAddress);
}
}
运行结果:
ComputerName/192.168.18.10
在 InetAddress 类中覆盖了 Object 类的 toString 方法,实现如下:
publicStringtoString()
{
return((hostName!
=null)?hostName:"")+"/"+getHostAddress();
}
从上面的代码可以看出,InetAddress 方法中的 toString 方法返回了
用“/”隔开的主机名和 IP 地址。因此,在上面的代码中直接通过 localAddress
对象来输出本机计算机名和 IP 地址(将对象参数传入 println 方法后,println
方法会调用对象参数的 toString 方法来输出结果)。
当本机绑定了多个 IP 时,getLocalHost 只返回第一个 IP.如果想返回
本机全部的 IP,可以使用 getAllByName 方法。
二、getByName 方法
这个方法是 InetAddress 类最常用的方法。它可以通过指定域名从 DNS 中得到相应
的 IP 地址。getByName 一个 String 类型参数,可以通过这个参数指定远程主机的域名,它
的定义如下:
剩余20页未读,继续阅读
资源评论
oligaga
- 粉丝: 50
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功