IP地址
互联网上的每一台计算机都有一个唯一表示自己的标记,这个标记就是IP地址
IP地址使用32位长度二进制数据表示,一般在实际中看到的大部分IP地址都是以十进制的数据形式表示
IP地址格式
网络地址+主机地址
网络号:用于识别主机所在的网络
主机号:用于识别该网络中的主机
IP地址分为:
- A类保留给政府机构
- B类分配给中等规模的公司
- C类分配给任何需要的人
- D类用于组播
- E类用于实验
分类 | 范围 |
---|---|
A类地址 | 1.0.0.1-126.255.255.254 |
B类地址 | 128.0.0.1-191.255.255.254 |
C类地址 | 192.0.0.1-223.255.255.254 |
D类地址 | 224.0.0.1-239.255.255.254 |
E类地址 | 240.0.0.1-255.255.255.254 |
127.X.X.X是保留地址用作循环测试,在开发中经常使用127.0.0.1表示本机的IP地址
IPV4与IPV6
PV4(Internet Protocol version 4)是互联网协议的第4个版本,也是最广泛使用的版本。但是IPV4已经无法满足当今互联网的主机数量,所以在此基础上又产生了新的版本IPV6,使用IPV6可以比IPV4容纳更多的主机。
InetAddress类
InetAddress类主要表示IP地址,这个类有两个子类:Inet4Address、Inet6Address,一个用于表示IPV4协议,另一个表示IPV6协议
InetAddress类
方法 | 作用 |
---|---|
public static InetAddress getByName(String host) throws UnknownHostException | 通过主机名称得到InetAddress对象 |
public static InetAddress getLocalHost() throws UnknownHostException | 通过本机得到InetAddress对象 |
public String getHostName() | 得到IP地址 |
public boolean isReachable(int timeout) throws IOException | 判断地址是否可达,同时指定超时时间 |
import java.net.InetAddress;
public class Hello {
public static void main(String[] args) throws Exception{
// 抛出所有异常
InetAddress locAdd = null;
InetAddress remAdd = null;
locAdd = InetAddress.getLocalHost();
// 得到本地InetAddress对象
remAdd = InetAddress.getByName("www.baidu.com");
// 得到百度的InetAddress对象
System.out.println(locAdd.getHostAddress());
// 打印本地IP地址
System.out.println(remAdd.getHostAddress());
// 打印百度的IP地址
System.out.println(locAdd.isReachable(5000));
// 判断是否可达
}
}