公网IP地址,内网IP地址,物理地址,本地环回地址(127.0.0.1)以及localhost的区别

公网IP地址,内网IP地址的区别

这篇文章讲的十分透彻:https://blog.csdn.net/gui951753/article/details/79210535

简而言之:公网IP是你办宽带时营业厅给你分配的地址,用于连接互联网。一般通过百度输入IP查到的就是这个公网IP。除非你换宽带,这个地址一般也不变。

而内网IP指的是局域网(如家里安装的路由器)给你随机分配的地址,当你连上家里的Wi-Fi时,这时候就会随机给你分配一个IP,这个IP是可变的。

一般在cmd终端上通过ipconfig命令查到的就是这个内网IP。

另外还有一点,在同一个局域网内,IP地址是唯一的;但是在不同的局域网内,IP地址是可以重复出现的。

举个小例子: 在局域网A中,有个主机的IP地址192.168.10.128,那么绝不可能在局域网A中还有其他主机的IP地址192.168.10.128。但是在局域网B中却可以有主机的IP地址也是192.168.10.128
如果局域网A中的192.168.10.128主机局域网B中的192.168.10.128主机通信,不会冲突吗?不会,因为上述说过,它们最终都是使用路由器中的公网IP来连接外网的,而公网IP是全球唯一的。

现在分析物理地址,本地环回地址(127.0.0.1)以及localhost:

物理地址(又称为MAC地址或者硬件地址)

顾名思义,肯定是跟最底层硬件有关的地址,这个地址就像你的身份证一样是世界上唯一的,在设备出厂的时候就打在设备的芯片里了,即固化在网卡上的ROM中,是按照国际上的标准和规定统一的格式,这个地址是永远不变的,同一型号的两个设备硬件地址也不同。

本地回环地址(127.0.0.1)

所谓的回环地址,通俗的讲,就是我们在主机上发送给127开头的IP地址的数据包会被发送的主机自己接收,根本传不出去,外部设备也无法通过回环地址访问到本机。

127.0.0.1作为{127}集合中的一员,当然也是个回环地址。只不过127.0.0.1经常被默认配置为localhostIP地址
一般会通过ping 127.0.0.1来测试某台机器上的网络设备是否工作正常。

localhost

localhost其实是域名,在 Windows 中,这个域名是预定义的,从 hosts 文件中可以看出:一般windows系统默认将localhost 指向127.0.0.1。

在操作系统支持 ipv6 后,它同时还指向ipv6 的地址 [::1] 。

但是localhost并不等于127.0.0.1localhost指向的IP地址是可以配置的。如下图的host文件:

所以,你也可以去host文件中,将localhost改为其它的127开头的ip地址。

注意:

localhost是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。一般设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网卡、网络资源。

有时候用localhost可以,但用127.0.0.1就不可以的情况就是在于此。猜想localhost访问时,系统带的本机当前用户的权限去访问,而用ip的时候,等于本机是通过网络再去访问本机,可能涉及到网络用户的权限。