IP地址
概念
IP地址:InternetAddress
-
唯一定位一台计算机(在网络上的)
-
127.0.0.1:本机 localhost
-
IP地址分类
-
IPv4/Ipv6
- IPv4:127.0.0.1,4个字节组成,0~255,有42亿个地址,30亿个都在北美,亚洲只有4亿,2011年就用尽了。
- IPv6:128位,8个无符号整数!
-
公网(互联网) - 私网(局域网)
-
ABCD类地址
-
A类地址第1字节为网络地址,其它3个字节为主机地址。另外第1个字节的最高位固定为0。
A类地址范围:1.0.0.0到127.255.255.255。
A类地址中的私有地址和保留地址:
10.0.0.0到10.255.255.255是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)。
127.0.0.0到127.255.255.255是保留地址,用做循环测试用的。
0.0.0.0到0.255.255.255也是保留地址,用做表示所有的IP地址。
A类地址默认子网掩码为255.0.0.0 -
B类地址第1字节和第2字节为网络地址,其它2个字节为主机地址。另外第1个字节的前两位固定为10。
B类地址范围:128.0.0.1到191.255.255.255。
B类地址的私有地址和保留地址
172.16.0.0到172.31.255.255是私有地址
169.254.0.0到169.254.255.255是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器,这时你将会从169.254.0.0到169.254.255.255中临时获得一个IP地址。
B类地址默认子网掩码为255.255.0.0 -
C类地址第1字节、第2字节和第3个字节为网络地址,第4个字节为主机地址。另外第1个字节的前三位固定为110。
C类地址范围:192.0.0.1到223.255.255.255。
C类地址中的私有地址:192.168.0.0到192.168.255.255是私有地址。
C类地址默认子网掩码为255.255.255.0 -
D类地址不分网络地址和主机地址,它的第1个字节的前四位固定为1110。
⑵ D类地址范围:224.0.0.0到239.255.255.255
D类地址用于多点播送。
D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
D类地址又分为三种类型:即专用地址、公用地址和私用地址;其中专用地址(224.0.0.0-224.0.0.255)用于网络协议组的广播,公用地址(224.0.1.0-238.255.255.255)用于其它组播,私用地址(239.0.0.0-239.255.255.255)用于测试。
在IPv6协议中,第一个字节必须是0xFF。 -
192.168.xx.xx,专门给组织内部使用(局域网)
-
-
-
域名:记忆IP问题!
代码
通过InetAddress
类的InetAddress.getByName()
方法可以查询本机地址或者网站的ip地址,
import java.net.InetAddress;
import java.net.UnknownHostException;
public class TestInetAddress {
public static void main(String[] args) {
try {
//查询本机地址
InetAddress inetAddress1 = InetAddress.getByName("127.0.0.1");
System.out.println(inetAddress1);
//查询网站ip地址
InetAddress inetAddress2 = InetAddress.getByName("www.baidu.com");
System.out.println(inetAddress2);
} catch (UnknownHostException e){
e.printStackTrace();
}
}
}
运行结果
/127.0.0.1
www.baidu.com/36.152.44.95
其他的一些查询本机地址的代码,
//查询本机地址
InetAddress inetAddress1 = InetAddress.getByName("127.0.0.1");
System.out.println(inetAddress1);
InetAddress inetAddress3 = InetAddress.getByName("localhost");
System.out.println(inetAddress3);
InetAddress inetAddress4 = InetAddress.getLocalHost();
System.out.println(inetAddress4);
运行结果
/127.0.0.1
localhost/127.0.0.1
DESKTOP-5VO4VNS/192.168.16.1
关于InetAddress
类的一些常用方法,
//常用方法
System.out.println(inetAddress2.getAddress()); //获得byte形式的地址
System.out.println(inetAddress2.getCanonicalHostName()); //规范的名字
System.out.println(inetAddress2.getHostAddress()); //ip
System.out.println(inetAddress2.getHostName()); //域名或者自己电脑的名字
运行结果
[B@1b6d3586
36.152.44.96
36.152.44.96
www.baidu.com