127.0.0.1和0.0.0.0
一、说明:
IP地址表示:
1.IP地址由两个部分组成,net-id和host-id,即网络号和主机号。
- net-id:表示ip地址所在的网络号。
- host-id:表示ip地址所在网络中的某个主机号码。
2.
IP-address ::= { <Network-number>, <Host-number> }
IP地址分类:
IP地址一共分为5类,即A~E,它们分类的依据是网络号和主机号,全0和全1的都保留不用。
- A类地址:第一个字节为网络号,后三个字节为主机号。该类IP地址的最前面为
“0”
,所以地址的网络号取值于1~126
之间。一般用于大型网络。 - B类地址:前两个字节为网络号,后两个字节为主机号。该类IP地址的最前面为
“10”
,所以地址的网络号取值于128~191
之间。一般用于中等规模网络。 - C类地址:前三个字节为网络号,最后一个字节为主机号。该类IP地址的最前面为
“110”
,所以地址的网络号取值于192~223
之间。一般用于小型网络。 - D类地址:是多播地址。该类IP地址的最前面为
“1110”
,所以地址的网络号取值于224~239
之间。一般用于多路广播用户。 - E类地址:是保留地址。该类IP地址的最前面为
“1111”
,所以地址的网络号取值于240~255
之间。
其中,ABC三类地址为单播地址(unicast),用于一对一通信,是最常用的。
- A类地址:第一个字节为网络号,后三个字节为主机号。该类IP地址的最前面为
特殊IP地址:
{0,0}
:网络号和主机号都全部为0,表示“本网络上的本主机”,只能用作源地址。{0,host-id}
:本网络上的某台主机。只能用作源地址。{-1,-1}
:表示网络号和主机号的所有位上都是1(二进制),用于本网络上的广播,只能用作目的地址,发到该地址的数据包不能转发到源地址所在网络之外。{net-id,-1}
:直接广播到指定网络的所有子网络上。只能用作目的地址。{net-id,subnet-id,-1}
:直接广播到指定网络的指定子网络上。只用作目的地址。{net-id,-1,-1}
:直接广播到指定网络的所有子网络上。只能用作目的地址。{127,}
:即网络号为127的任意ip地址。都是内部主机回环地址(loopback),永远都不能出现在主机外部的网络中。
二、127.0.0.1
127.0.0.1
是一个回环地址,这个地址也是给本机loop back
接口所预留的IP地址,但是并不表示”本机”。
测试使用:
1.收到
127.0.0.1
的响应表示主机的TCP/IP安装成功。
2.此方法只是测试网络层的ip联通性。此响应来自网络层。
3.无法测试出具体TCP/IP的配置(地址、掩码、和网关)是否正确,也无法测试出网卡是否正常,因为数据在离开IP层之前就已经被送回去了。本机进程间的通信:
1.如
apache+php+mysql
这样的应用环境,应用程序与mysql数据库同时存在于同一个系统上面,常用环回地址127.0.0.1
做套接字的ip地址。
2.使用环回地址主要的原因是方便和稳定,如:网络接口的地址可能因为某种原因被更改(如服务器搬迁到别的地理位置),或者应用被迁移到另外的系统,导致ip改变,而使用环回地址就不会受ip地址改变的影响。DDos攻击防御:
网站收到DDos攻击之后,将域名A记录到127.0.0.1,即让攻击者自己攻击自己。
三、0.0.0.0
说明:
0.0.0.0
表示整个网络(此网络上的此主机的源地址)RFC:
0.0.0.0/8 - Addresses in this block refer to source hosts on "this"
network. Address 0.0.0.0/32 may be used as a source address for this
host on this network; other addresses within 0.0.0.0/8 may be used to
refer to specified hosts on this network ([RFC1122], Section 3.2.1.3).0.0.0.0/8
可以表示本网络中的所有主机0.0.0.0/32
可以用作本机的源地址0.0.0.0/8
也可表示本网络上的某个特定主机
注:在路由器配置中可用
0.0.0.0/0
表示默认路由,作用是帮助路由器发送路由表中无法查询的包。如果设置了全零网络的路由,路由表中无法查询的包都将送到全零网络的路由中去。
作用:
- 当一台主机还没有被(DHCP)分配一个IP地址的时候,用于表示主机本身。
- 用作默认路由,表示”任意IPV4主机”。
- 用来表示目标机器不可用。
- 用作服务端,表示本机上的任意IPV4地址。
四、总结:
- 127.0.0.1 是一个环回地址。并不表示“本机”。
- 0.0.0.0才是真正表示“本网络中的本机”。
- 一般我们在服务端绑定端口的时候可以选择绑定到0.0.0.0,这样我的服务访问方就可以通过我的多个ip地址访问我的服务(只需要内网访问的服务,可以只绑定内网地址,否则会出现内网能访问,外网不能访问)
五、参考:
- 链接:
https://tools.ietf.org/html/rfc5735#section-3
https://en.wikipedia.org/wiki/0.0.0.0
https://fossbytes.com/ip-address-0-0-0-0-meaning-default-route-uses/
http://baike.baidu.com/item/127.0.0.1
http://www.cnblogs.com/hnrainll/archive/2011/10/13/2210101.html
http://blog.onlycatch.com/post/7e371ca28621