公网IP、私网IP

公网IP可以和互联网上的其他公网IP通信,具有唯一性。

私网IP可用于局域网内部通信,能在不同的局域网里重复使用。私网IP不被互联网识别和使用,通常用于解决IP地址不够的问题。

比如一个学校有上万台电脑,不可能每个人分配一个公网地址,就采用Nat技术,给局域网内的电脑分配私网地址,在网络出口做地址转换,共用一个或若干个公网IP地址。

IPV4私有地址范围

192.168.0.0-192.168.255.255

172.16.0.0-172.31.255.255

10.0.0.0-10.255.255.255

NAT(Network Address Translation),是指网络地址转换,1994年提出的。NAT是用于在本地网络中使用私有地址,在连接互联网时转而使用全局 IP 地址的技术。

NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad。

静态转换是指内部本地地址一对一转换成内部全局地址,相当内部本地的每一台PC都绑定了一个全局地址。一般用于在内网中对外提供服务的服务器。 

动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。

端口多路复用(Port address Translation,PAT)是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,网络中应用最多的就是端口多路复用方式。

### 公网IPIP的区别、作用及应用场景 #### 区别 公网IPIP的主要区别在于其可访问性和分配范围。 - **公网IP** 是在全球范围内唯一的,可以直接从互联上访问的IP地址[^1]。这些IP地址由国际机构分配给各个国家和地区的服务提供商,用于标识连接到公共互联的设备。 - **IP** 则是在局域(LAN)内部使用的IP地址,主要用于本地网络中的设备通信。这类IP地址不会直接暴露于互联,因此不具备全局可达性。 具体来说,IP通常位于以下几个特定的保留地址段内: - `10.0.0.0` 至 `10.255.255.255` (即 `10.0.0.0/8`) - `172.16.0.0` 至 `172.31.255.255` (即 `172.16.0.0/12`) - `192.168.0.0` 至 `192.168.255.255` (即 `192.168.0.0/16`) 如果某个设备的IP地址属于以上范围之一,则该IPIP[^2]。 --- #### 作用 - **公网IP的作用**: 主要是为了使设备能够被外部网络识别并访问。例如,当用户通过浏览器访问一个站时,实际上是向目标服务器的公网IP发送请求。只有拥有公网IP的设备才能接收来自互联的数据流量。 - **IP的作用**: 提供了一种经济高效的方式来管理大量内部设备而不消耗过多的公有IP资源。由于IP不直接面向公众开放,还增强了安全性——攻击者难以直接定位到具体的设备。 此外,借助NAT(Network Address Translation, 网络地址转换)技术,多个使用IP的设备可以通过单一的公网IP与外界进行交互[^1]。 --- #### 应用场景 - **公网IP的应用场景** - 对外提供服务:如Web服务器、邮件服务器等需要接受来自全球用户的请求时,必须配置公网IP。 - 远程管理和监控:管理员可通过SSH或其他协议远程登录具有公网IP的机器执行操作或诊断问题。 - **IP的应用场景** - 局域环境下的资源共享:比如办公室内的打印机共享、文件传输等功能无需公开曝光即可完成。 - 数据中心内部互联:大型数据中心往往采用复杂的路由策略构建庞大的网络体系结构以支持业务需求。 - 家庭Wi-Fi设置:家庭路由器一般会给接入无线网络的所有终端分配有的IPv4地址以便上浏览页等内容。 对于云计算平台而言,像阿里云这样的供应商提供了灵活选项让用户可以选择将自己的现有IP迁移到云端继续沿用,同时也能利用弹性IP(Elastic IP)按需调整带宽大小满足不同阶段的实际负载情况变化的要求[^4]^。 ```python # 示例代码展示如何获取本机IP地址类型 import socket def get_ip_type(ip_address): private_ranges = [ ("10.0.0.0", "10.255.255.255"), ("172.16.0.0", "172.31.255.255"), ("192.168.0.0", "192.168.255.255") ] ip_parts = list(map(int, ip_address.split("."))) for start_range, end_range in private_ranges: range_start = list(map(int, start_range.split("."))) range_end = list(map(int, end_range.split("."))) if all(range_start[i] <= ip_parts[i] <= range_end[i] for i in range(4)): return "Private" return "Public" print(get_ip_type(socket.gethostbyname(socket.gethostname()))) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值