ip地址0.0.0.0与127.0.0.1的区别(转载)
原文链接:http://blog.csdn.net/ttx_laughing/article/details/58586907
最近在项目开发中发现一个奇怪的问题,当服务器与客户端在同一台机器上时,用服务器ip(本地主机ip)192.168.1.xxx、127.0.0.1以及0.0.0.0都能登陆服务器,于是找点资料研究一下。
其实,最开始是发现服务器ip填0能登陆成功,后来知道了系统自动补全ip地址,什么意思呢,就是如果你填0或0.0或0.0.0,系统都会自动补全ip为0.0.0.0。下面就简要介绍一下这三种ip的区别。
相信读者都知道,ipv4是点分十进制模式,每个ip地址都有特殊的含义。首先说一下ip地址:127.0.0.1,这是大家最熟悉不过的本地loopback(回环)地址,代表本地主机,在windows和Linux上等价于localhost,可在C:\Windows\System32\drivers\etc\hosts文件中修改主机名或定义ipv6地址(# ::1 localhost)。
正常的网络包从ip层进入链路层,然后发送到网络上,
而发向loopback地址的包,直接在IP层短路了,也就是发到IP层的包直接被IP层接收了,不再向下发送。
192.168.1.x,是公网ip地址,这些是在网络中代表本机的ip地址,可通过此ip地址远程访问或控制主机。
0.0.0.0,最特殊的一个ip地址,代表的是本机所有ip地址,不管你有多少个网口,多少个ip,如果监听本机的0.0.0.0上的端口,就等于监听机器上的所有ip端口。换句话说,就是只要数据报目的地址是你机器上的一个ip地址,那么就能被接受。这个ip相当于Java中的this,代表当前设备的IP。
下面再来说说这三种地址的区别。在Java开发中,服务器端如果没有显示绑定ip地址,如:
ServerSocket serverSock = new ServerSocket(8888);
serverSock.accept();
系统默认的ip地址是0.0.0.0,此时用以上3种ip都能连接成功。
如果显示绑定ip,如:
ServerSocket serverSocket = new ServerSocket();
serverSocket.bind(new InetSocketAddress("127.0.0.1",8888));
serverSock.accept();
此时ip192.168.1.x将连接不上,而ip127.0.0.1和0.0.0.0仍然可以连接。同理,也可以显示指定ip192.168.1.x
在java服务器开发中,一般不需指定ip,因为这种情况只会出现在服务器和客户端在一台主机上。当然,如果想屏蔽某个ip,可在服务器中显示指定,也可在客户端登录时直接屏蔽。
ip地址0.0.0.0与127.0.0.1的区别(转载)的更多相关文章
- jBoss无法通过IP地址访问,只能用localhost\127.0.0.1访问
http://feng88724.iteye.com/blog/263211 JBOSS版本:4.2.2GA 症状:服务器无法通过IP地址去访问,只能用127.0.0.1或者localhost来访问. ...
- ip地址、域名、DNS、URL(即网址)的区别与联系
域名和ip ================================================================ 我们也知道每一台机都有一个唯一ip地址, 特别难记,所以出 ...
- 刚在虚拟机上装的Linux系统,ifconfig后IP地址怎么成了127.0.0.1了
之前在虚拟机上装了Linux系统,用了一段时间后想删除了重新装一下,然而装完以后ifconfig后,出现的是 [root@localhost ~]# ifconfig lo Link encap:Lo ...
- JBOSS部署项目之后,无法通过IP地址訪问,仅仅能通过localhost或者127.0.0.1訪问
这几天入职到了一家新的公司,然后第一天就開始搭建各种环境.由于原先一直用的是Tomcat容器,然后也是第一次接触JBOSS容器,搭建完之后,在MyEclipse中启动了JBOSS容器,然后想在浏览器中 ...
- 计算机网络学习笔记--网络层之IP地址与子网
IPv4地址: 我们知道在网络层(TCP/IP体系结构的网际互联层),最重要的一个协议就是IP协议,现在正处于IPv4和IPv6的过渡时期,但目前来说,IPv4仍为主流,所以主要讲Ipv4. IP地址 ...
- IP地址的分类与寻址
IP地址:有一种标识符,被TCP/IP协议簇的IP层用来标识 连接到因特网的设备.IP协议的第4版IPv4地址是32位地址,是连接地址,定义了每一个连接到因特网上的设备(可以认为是主机的别名),而不是 ...
- WPF数字输入框和IP地址输入框
数字输入框 简介 在业务中,我们经常需要限制用户的输入,比如限制输入长度,限制只能输入数字等等.限制输入长度WPF内置的TextBox已经帮我们解决了,但是限制输入数字却并未在WPF中内置解决方案.使 ...
- IP地址,子网掩码,默认网关
IP地址: 是给每个连接在Internet上的主机分配的一个32bit地址. 地址有两部分组成,一部分为网络地址,另一部分为主机地址. IP地址分为A.B.C.D.E 5类.常用的是B和C两类. 网络 ...
- 如何计算IP地址及CIDR(收藏)
如何计算IP地址及CIDR 一. IP地址概念 IP地址是一个32位的二进制数,它由网络ID和主机ID两部份组成,用来在网络中唯一的标识的一台计算机.网络ID用来标识计算机所处的网段:主 机ID用来标 ...
- TCP/IP协议原理与应用笔记03:IP地址分类
1. 事实上,每个IP地址都包含两部分,即网络号和主机号. 例如:202.112.81.34指的 就是202.112.81这个网络的第34号机. 网络号:用于识别主机所在的网络: 主机号:用于识别该网 ...
随机推荐
- Android库的标准化(不断更新中)
在Android的开发过程中,为了代码的通用性,模块化等原因,应该尽量将功能独立的,通用性高的模块抽离出来,建立单独的库.各个库的功能不同,但是同样作为库,依然有很多相通的地方. 各个库应该都应该遵循 ...
- Ubuntu server搭建Java web服务器
1. 在Ubuntu server中安装ssh,如果是购买服务器的话,这已经是安装的了,包括vim 获取超级权限 先更新安装包 开始安装ssh ssh已经启动了 2. 安装Xshell并创建连接安装X ...
- String的Intern方法详解
引言 在 JAVA 语言中有8中基本类型和一种比较特殊的类型String.这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念.常量池就类似一个JAVA系统级别提供的缓存.8种 ...
- wifi驱动总结(2)
1.dhd_module_init(驱动模块初始化函数) → dhd_wifi_platform_register_drv(查找设备,注册驱动) → 1) wifi_ctrlfunc_register ...
- Jenkins 远程构建任务
开发过程中提交代码以后,如何不登录Jenkins就自动触发jenkins 任务来发布软件版本. 1.首先我们创建一个Jenkins任务. 2.选择"构建触发器"->勾选&qu ...
- LeetCode---------Longest Substring Without Repeating Characters解法
题目如下: Given a string, find the length of the longest substring without repeating characters. Example ...
- 【2017-05-21】WebForm内置对象:Session、Cookie,登录和状态保持
1.Request -获取请求对象 string s =Request["key"]; 2.Response - 响应请求对象 Response.Redirect(" ...
- 面试(4)-spring-Spring面试题和答案
1:69道Spring面试题和答案 转自:http://ifeve.com/spring-interview-questions-and-answers/ 目录 Spring 概述 依赖注入 Spri ...
- mongo - 升级步骤
升级步骤1. 关闭balancer登陆mongos,执行sh.stopBalancer(),或者 连接到mongos>use config>db.settings.update( { _i ...
- 【JAVAWEB学习笔记】网上商城实战2:异步加载分类、Redis缓存分类和显示商品
网上商城实战2 今日任务 完成分类模块的功能 完成商品模块的功能 1.1 分类模块的功能: 1.1.1 查询分类的功能: 1.1.2 查询分类的代码实现: 1.1.2.1 创建 ...