公网Ip和私网ip
IP可以分为Public IP 和 Private IP,出现这种规划的原因在于IPv4所能表示的IP太少而电脑太多以至于不够用,然而只有Public IP才能直接连接上网络,所以对于那些公司,学校,政府机构等场所,就可以集中使用私有的IP进行管理,而大家可以共用一个IP去连接上公网,这样,就省下了许多宝贵的Public IP。你有没有发现,你每次使用ipconfig查到的地址,要么就是172.开头的,要么就是192.开头的,为什么?难道没有其他开头的嘛,答:基本没有。因为一个Ip分给我们一个Pc端太不划算了,一般都是很多人共享一个ip,我们用ipconfig查询到的其实只是我们的局域网Ip,172.开头的意味着我们是B类型的局域网,以192.开头的意味着你是c类的局域网。所以我们一直都没有接触到正真的ip,我们一直打交道的都是私有ip又叫private ip.
ipconfig查出来的是你本机的IP地址,也就是内网私有地址,此类地址仅在局域网使用,不能联通外网。百度查出来的地址是你上网的共有地址,也许并不是你主机的地址,而是电信或联通分给你的地址,用于连接互联网。
- Public IP : 公共 IP ,经由 INTERNIC 所统一规划的 IP,有这种 IP 才可以连上 Internet ;
- Private IP : 私有 IP 或保留 IP,不能直接连上 Internet 的 IP ,主要用于局域网络内的主机联机规划。
早在 IPv4 规划的时候就担心 IP 会有不足的情况,而且为了应付某些企业内部的网络设定,于是就有了私有IP (Private IP) 的产生了。私有 IP 也分别在 A, B, C 三个 Class 当中各保留一段作为私有 IP 网段,那就是:
- Class A:10.0.0.0 - 10.255.255.255
- Class B:172.16.0.0 - 172.31.255.255
- Class C:192.168.0.0 - 192.168.255.255
由于这三段 Class 的 IP 是预留使用的,所以并不能直接作为Internet 上面的连接之用,不然的话,到处就都有相同的IP 啰!那怎么行!网络岂不混乱?所以啰,这三个 IP 网段就只做为内部私有网域的IP 沟通之用。一般说来,我们用Ipcofig是无法查到公网ip的,大多数时候,你使用ipconfig查到的一般就只是以172.开头的b类私有Ip,或者以192.168开头的c类私有Ip.简单的说,s私有ip有底下的几个限制:
- 私有 IP 的路由信息不能对外散播 (只能存在内部网络);
- 使用私有 IP 作为来源或目的地址的封包,不能透过 Internet 来转送 (不然网络会混乱);
- 关于私有 IP 的参考纪录(如 DNS),只能限于内部网络使用 (一样的原理啦)
这个私有 IP 有什么好处呢?由于他的私有路由不能对外直接提供信息,所以,你的内部网络将不会直接被 Internet 上面的 Cracker 所攻击!但是,你也就无法以私有 IP 来『直接上网』啰!因此相当适合一些尚未具有Public IP 的企业内部用来规划其网络之设定!否则当你随便指定一些可能是Public IP 的网段来规划你企业内部的网络设定时,万一哪一天真的连上Internet 了,那么岂不是可能会造成跟 Internet 上面的 Public IP 相同了吗?
只有公网ip是能够连接互联网的,私网IP 一般只用作局域网
| 类别 | IP范围 | 私有地址范围 | 保留地址 |
| A | 1.0.0.0~126.255.255.255 | 10.0.0.0~10.255.255.255 | 127.0.0.0~127.255.255.255 |
| B | 128.0.0.0~191.255.255.255 | 172.16.0.0~172.31.255.255 | 169.254.0.0~169.254.255.255 |
| C | 192.0.0.0~223.255.255.255 | 192.168.0.0~192.168.255.255 | 无 |
我们能够上网靠的是isp组织分给我们的Ip地址,但是这个ip地址一般不是给个人的,一般都是给一个单位,一个区域的,也就是说我们实际上能接触到的一般都是私有地址,即我们用ipconig查到的都是私有地址,也就相当于局域网内的ip地址,当我们真正联网时,会先把数据发送到路由,然后再由路由进行处理实现真正的联网操作,路由的地址才是真正联网的Ip地址,也就是pubilc ip,而我们在自己电脑上查到的都是私有ip
举个例子,我们在学校或者查到的Ip一般都是172.开头的,比如上图我的地址,那就是在学校里检测到的ip地址,通常是b类地址,而我们在家里一般用的都是c类地址。也就是一般是192.168开头的地址。这个大家可以自行去验证一下。
上网流程:
移动公司分给我们的ip是117.158.134.217,这是我们这一栋楼能连上网的公网Ip,那么如何让这一个ip使学校里面的所有人都能使用呢,我们开始重新划分局域网。上文中,我们知B类私有地址范围是:172.16.0.0~172.31.255.255,我们学校采取的就是这种划分方法,所以我的私网ip地址就是172.18.251.129.那么怎么连上网的呢,我们通过私网ip然后把我们的需求和要发送的数据发给路由器,然后路由器对接网络,再把数据发送给Internet.然后internet发送数据到我们学校的路由,然后路由在通过我的私网ip发送给我,这就是我们真实上网的流程。

遗留问题:
大家可能也注意到了一个问题,就是我们在百度查到的ip是117开头的,也就是说其实是a类,但是我们这边私网Ip却是172开头的,是b类的私有ip地址,那么问题来了?117开头的IP地址是如何转换成172开头的私有ip的呢?他们之间一定有一个转换关系,构成了一个公网和私网之间的一个映射。这个关系是什么呢???
在查阅了多方资料之后,这个问题其实就是私网Ip和公网Ip的转换这个问题,其实利用到了nat转换技术,将172.16.xxx.xxx~172.31.xxx.xxx转换到公网ip,也就是我图中所示的那个郑州的117开头的ip。我们的私网ip是自成体系的,在合理的建设完私网ip后,我们只需利用nat技术将公网ip和私网ip做一个转换即可。大概就跟下图所示一样,二楼使用的是172.16.xx.xx开头的网址,三楼是172.17.xx.xx,四楼是172.18.xx.xx,从图中可以有一个很清晰地认识

随着学校换地方,我们的Ip也发生了一些微妙的变化。我们搬到了一个新的环境,还没搭建起服务器。当我使用Ipconfig命令来查询自己的ip地址的时候,我们发现了一个奇怪的事情,我们获取到的ip地址是一个以169开头的ip地址,上文已经提到过我们正常情况下获到的地址应该是一个以172.16~172.31这之间开头的,那么为什么会出现169开头的呢?
169开头的是一个保留地址,是本地连接受限时系统自动分配的ip没有什么实际的意义,出现这种情况可能是服务器还没搭建好。果然,等我们重新搭建好了代理服务器之后,我们的网址又变回了现在的172.18开头的网址。
公网Ip和私网ip的更多相关文章
- 公网IP、私网IP
公网.内网是两种Internet的接入方式.公网接入方式:上网的计算机得到的IP地址是Internet上的非保留地址,公网的计算机和Internet上的其他计算机可随意互相访问. NAT(Networ ...
- python学习-判断是否是私网IP地址
判断是否是私网IP地址 私网IP地址范围如下: 192.168.0.0-192.168.255.255 172.16.0.0-172.31.255.255 10.0.0.0-10.255.255.25 ...
- IP地址分类及私网IP
5类IP地址: IP地址共有32位字节,其中A~C类IP地址由类标识号.网络地址和主机地址组成,A类标识最高位为0,网络地址为1字节,主机地址为3字节, B类标识最高位为10,网络地址为2字节,主机地 ...
- 脑残式网络编程入门(六):什么是公网IP和内网IP?NAT转换又是什么鬼?
本文引用了“帅地”发表于公众号苦逼的码农的技术分享. 1.引言 搞网络通信应用开发的程序员,可能会经常听到外网IP(即互联网IP地址)和内网IP(即局域网IP地址),但他们的区别是什么?又有什么关系呢 ...
- 什么是公网IP、内网IP和NAT转换?
搞网络通信应用开发的程序员,可能会经常听到外网IP(即互联网IP地址)和内网IP(即局域网IP地址),但他们的区别是什么? 1.引言 搞网络通信应用开发的程序员,可能会经常听到外网IP(即互联网IP地 ...
- 服务器的公网ip 和内网ip
原文地址:https://zhidao.baidu.com/question/814783729071869532.html 服务器公网ip 可以用于域名解析ip,服务器远程登录ip,是最主要的服务器 ...
- 为什么WAN口IP和外网IP不一样(不一致)?
正常的网络应该是动态公网ip,也就是路由器里面的WAN口IP与www.ip138.com上面显示的是一致的,不一致的话则说明该网络被电信或者联通做了NAT转发,导致您获取到了一个虚假的IP地址,无法用 ...
- 外网IP和内网IP的区别
这两天遇到一个bug,折腾的够呛,已经上线的项目,出现了个人登录不上的情况,瞬间整个人都不好了,首先找问题,在本地和测试服务器上都没问题,打包发布到正式环境就出现问题了,刚开始我看不了日志,日志要找别 ...
- 获取本机外网ip和内网ip
获取本机外网ip //获取本机的公网IP public static string GetIP() { string tempip = ""; try { WebRequest r ...
随机推荐
- [UE4]The global shader cache file missing 运行错误解决办法
UE4项目在VS中对项目代码编译时报如错,找了好久在UE4论坛上查到了别人的解决方案,贴出来仅供大家参考. 看到一位开发者解释出错的原因如下: There are a number of build ...
- 00014 - linux中用top、ps命令查看进程中的线程
在Linux上显示某个进程的线程的几种方式. 方法一:PS 在ps命令中,“-T”选项可以开启线程查看.下面的命令列出了由进程号为<pid>的进程创建的所有线程. 1.$ ps -T -p ...
- 00001 - Linux下 环境变量/etc/profile、/etc/bashrc、~/.bashrc的区别
①/etc/profile: 该文件登录操作系统时,为每个用户设置环境信息,当用户第一次登录时,该文件被执行.也就是说这个文件对每个shell都有效,用于获取系统的环境信息. # /etc/profi ...
- Win10开发环境配置
基本环境变量配置:最近工作电脑固态硬盘损坏了,导致不得不重新装机,从前配置的环境需要重新配置,在此标记. Java环境配置: 添加变量 JAVA_HOME=D:\Program Files\Java\ ...
- Android最新版支付宝支付集成
上次集成支付宝支付已经很久了,今天写东西用到了支付宝支付,就大致写一下流程: 去蚂蚁金服下载最新版的Android&IOS端SDK 全部文档 -- 资源下载 -- App支付客户端 下载后解压 ...
- asp.net网站中增删文件夹会导致Session或cache等等丢失
因为这会导致网站资源本身重新加载. 如果要改变文件和文件夹,一般应该是对 app_data 下进行操作.
- python hashillb 模块
hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法 import hashlib # ## ...
- angularjs指令中的scope
共享 scope 使用共享 scope 的时候,可以直接从父 scope 中共享属性.因此下面示例可以将那么属性的值输出出来.使用的是父 scope 中定义的值. js代码: app.controll ...
- Eureka 消费方
创建服务消费者 1.pom文件添加eureka的起步依赖 2.配置文件添加eureka.client相关配置 3.启动类注解@EnableDiscoveryClient 启动类: 启动后.
- bayes公式 - 再从零开始理解
bayes公式与机器学习 - 再从零开始理解 从本科时候(大约9年前)刚接触Bayes公式,只知道P(A|B)×P(B) = P(AB) = P(B|A)×P(A) 到硕士期间,机器学习课上对P(B| ...