系列文章目录
一、IP地址
IP地址分为IPV4和IPV6目前我们看到的一般还算IPV4
为什么要有IPV6 因为IPV4不就的将来就要淘汰了,为什么会淘汰,因为随着万物互联,连入互联网的事物越来越多,IPV4的位数不够用了
注意:
1、2025年会慢慢淘汰IPV4
2、因为IP地址不好记,为了方便记忆所以出现了域名,用于比较方便记忆和识别的单词来代表IP地址,域名可以解析成IP地址,反之也可以
- IP地址:
- IPV4:32位,4个整数,每一个整数是1个字节(无符号)0~255
-
例如:192.168.30.142
- IPV6:
-
128 位无符号数字,8个16进制值
-
例如:1080:0:0:0:8:800:200C:417A
- 特殊的IP:
-
127.0.0.1 本地回传IP
-
224.0.0.0至239.255.255.255 广播IP地址
-
....
- 域名:
- 用于比较方便记忆和识别的单词来代表IP地址
- 例如:www.atguigu.com
-
www.jd.com
-
www.taobao.com
-
www.baidu.com
-
....
- 域名–》域名解析器–>IP地址
- 域名:
- 一级域名:.com商业
-
.cn 中国
-
.org 组织,机构,非盈利型
-
.gov政府
-
.edu教育
-
....
- 域名需要注册
二、端口号
- 端口号:
- [0,65535]之间无符号 2个字节
- (1)公认端口(Well-Known Ports)范围从0到1023
-
http: 80 ftp:21 SMTP:25
- (2)注册端口(Registered Ports):端口号从1024到49151。
-
例如:Tomcat(8080),JBOSS(8080),Oracle(1521),MySQL(3306),SQL Server(1433),QQ(1080)。
- (3)动态/私有端口(Dynamic and/Private Ports):端口的范围从49152到65535,这些端口号一般不固定分配给某个服务。
三、IP地址、端口号 代码当中的表示
IntAdddress
java.net.InetAddress:用来包装IP地址对象的
InetAddress有两个子类:Inet4Address 、Inet6Address
(1)InetAddress.getLocalHost()
(2)InetAddress.getByName(“www.baidu.com”)
如果想根据域名来获取IP地址
(3)InetAddress.getByAddress(addr)
如果后面的API中,要接收IP的形参类型是InetAddress的话,就可以刚才的方法来创建对象
代码:
package com.atguigu.test08;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.junit.Test;
public class TestInetAddress {
@Test
public void test03() throws UnknownHostException{
byte[] addr = {(byte)192,(byte)168,30,(byte)142};
InetAddress ben = InetAddress.getByAddress(addr);
System.out.println(ben);
}
@Test
public void test02() throws UnknownHostException{
InetAddress bai = InetAddress.getByName("www.baidu.com");
System.out.println(bai);
}
@Test
public void test01() throws UnknownHostException{
InetAddress ben = InetAddress.getLocalHost();
System.out.println(ben);//Irene-PC/192.168.30.142
}
}
总结
1、对于IPV4、IPV6、三次握手、四次挥手等概念要能够深入了解,能说出来原由
2、对于各个常用端口号要记忆,比如各种数据库的注册端口号Oracle(1521),MySQL(3306),SQL Server(1433)