Python Web 学习之 NAT 技术
引子 在学习 Web 和 Python 爬虫的时候,我们都需要向公网 IP(通过 URL)进行请求,然后得到响应数据。一个典型的网络系统架构图如下所示: 但是我们并没有公网 IP,我们通常使用的是 192.168 开头的局域网 IP 地址,或者是网络服务商提供的动态的公共 IP 地址。那么,Web 服务器到底是怎么准确地找到我们并且数据发给我们请求的应用呢?——答案就是 NAT。 NAT 技术 也叫 网络地址转换技术 ,是一种私有地址转换成合法/公网 IP 地址的技术。下面我们一起来了解一下,什么是私有地址,什么是合法 IP 地址,以及为什么要引入 NAT 技术。 当你了解了 NAT,相信也会对 Python Web 编程和架构设计有更深的理解! NAT 技术 私有地址和合法地址 如果组建一个局域网,其中的 IP 地址仅用于局域网内部通信,而不能直接连到 Internet 的话,那么这些IP地址就是局域网的私有 IP 地址。理论上所有 IP 地址均可作为私有 IP 地址,但是 RFC1918 规定私有 IP 地址不能出现在 Internet 上,所以规定了私有IP地址为以下三种: 10.* ,前8位是网络号,共16777216个地址; 172.16.* 到 172.31.* ,前12位是网络号,共1048576个地址; 192.168.* ,前16位是网络号,共65536个地址。