当前位置: 芃睿知识网 > 电脑小知识及常见问题

ip地址为0.0.0.0是什么意思

时间:2021年10月25日 22:57   作者:知识网   出处:原创

答案:0.0.0.0不是一个可用的ip,当前服务器监听所有的ip请求。

 

它表示的是这样一个集合:


1、所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。


2、对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一 律送进去。


3、如果在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为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).

根据RFC文档描述,它不只是代表本机,0.0.0.0/8可以表示本网络中的所有主机,0.0.0.0/32可以用作本机的源地址,0.0.0.0/8也可表示本网络上的某个特定主机,综合起来可以说0.0.0.0表示整个网络。它的作用是帮助路由器发送路由表中无法查询的包。如果设置了全零网络的路由,路由表中无法查询的包都将送到全零网络的路由中去。

在路由器配置中可用0.0.0.0/0表示默认路由,作用是帮助路由器发送路由表中无法查询的包。如果设置了全零网络的路由,路由表中无法查询的包都将送到全零网络的路由中去。严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:所有未知的主机和目的网络。这里的“未知”是指在本机的路由表里没有特定条目指明如何到达。

 

实际案例:


在Java开发中,服务器端如果没有显示绑定ip地址,如:

ServerSocket serverSock = new ServerSocket(8888);
serverSock.accept();

系统默认的ip地址是0.0.0.0,此时用192.168.1.xxx、127.0.0.1以及0.0.0.0都能连接成功。 
如果显示绑定ip,如:

ServerSocket serverSocket = new ServerSocket();
serverSocket.bind(new InetSocketAddress("127.0.0.1",8888));
serverSock.accept();

此时ip 192.168.1.x将连接不上,而ip 127.0.0.1和0.0.0.0仍然可以连接。同理,也可以显示指定ip 192.168.1.x
在java服务器开发中,一般不需指定ip,因为这种情况只会出现在服务器和客户端在一台主机上。当然,如果想屏蔽某个ip,可在服务器中显示指定,也可在客户端登录时直接屏蔽。

看了该文章的用户还看了

发表高见 (请对您的言行负责)
©芃睿知识网 版权所有2021-2022 www.shsongjiang.com