本机ip、127.0.0.1和0.0.0.0区别

 
网络java
IP地址的记法:
IP地址由四个字节构成,为了方便阅读和书写,每个字节用0-255的数字表示,字节之间用’.'分割,如:
10.10.152.235
有时候我们会看到这样的IP:
10.10.152.235/24,
后面的/24表示子网掩码,24表示子网掩码上有24个1,等价于255.255.255.0 。
IP地址和子网掩码按位 与,得到的是 网络号(Network ID),
剩余的部分是子网内的 主机号(host ID,当然,这个名字小有问题,因为现在有IP的可不仅仅是主机,暂且这么称呼吧),
特殊的IP地址段:
127.x.x.x
这是大家最熟悉不过的本地loopback地址,在windows和linux上等价于localhost。
我们习惯于使用127.0.0.1,实际上,
如果你在命令行下ping 127.0.0.1-127.255.255.254之间的任意地址,结果都是一样的,它们是等价的。
正常的网络包从ip层进入链路层,然后发送到网络上,
而发向loopback地址的包,直接在IP层短路了,也就是发到IP层的包直接被IP层接收了,不再向下发送。
私网地址段:
10.x.x.x、192.168.x.x、172.16.x.x~172.31.x.x、169.254.x.x
这些私网地址段是不允许出现在Internet上的,主用保留用于企业内部组网使用,
这可以在一定程度上缓解IP地址不够用的问题。
大型企业的OA网用10地址段的比较多,因为这是一个A类地址段,包含的IP很多。
小公司用192.168.0地址段的比较多。
而169.254则主要是分配给DHCP服务使用的。
保留地址段:
128.0.x.x、191.255.x.x、192.0.0.x、233.255.255.x
这些地址被保留起来,不做分配且没有明确的用途。
其它特殊IP:
255.255.255.255是全局广播地址,
主机号全部为1的地址是子网广播地址,如:192.168.1.255
主机号全部为0的地址是代表该子网的网络地址,如:192.168.1.0
一个非常特殊的IP:0.0.0.0
这个IP相当于java中的this,代表当前设备的IP。
我们在java编程中使用ServerSocket做网络侦听,通常只需要如下代码:
ServerSocket serverSock=new ServerSocket(8888);
serverSock.accept();
假如我的主机ip为:10.10.152.8,
用以上代码做侦听,127.0.0.1:8888或者10.10.152.8:8888都可以连上,
但大家有没有想过过,这个ServerSocket到底使用哪个IP在做侦听?
如果我们将以上代码改成显式绑定:
ServerSocket ss=new ServerSocket();
String ip=“10.10.152.8″;
int port=8888;
InetSocketAddress addr=new InetSocketAddress(ip,port);
ss.bind(addr);
ss.accept();
你会发现,127.0.0.1:8888是无法访问的,
而如果将ip改成127.0.0.1,那么10.10.152.8:8888是无法访问的。
实际上,背后的秘密就在与0.0.0.0这个IP,他可以代表本机的所有IP地址,
但这个IP并不是真是存在的,我们ping不通它,如果将ip改成0.0.0.0:
ServerSocket ss=new ServerSocket();
String ip=“0.0.0.0″;
int port=8888;
InetSocketAddress addr=new InetSocketAddress(ip,port);
ss.bind(addr);
ss.accept();
我们会发现,这和默认行为是一样的,127.0.0.1:8888或者10.10.152.8:8888都可以连上。
 
原文链接:http://www.2cto.com/net/201310/253427.html

本机IP、127.0.0.1和0.0.0.0的区别的更多相关文章

  1. 127.0.0.1、0.0.0.0和本机IP地址的区别和使用

    一.表面上的区别如下: 首先假设本机有多个网卡:eth0 :192.168.0.1       eth1:192.168.1.1     lo: 127.0.0.1 0.0.0.0 不能ping通,代 ...

  2. localhost简介、localhost与 127.0.0.1 及 本机IP 的区别

    localhost是什么意思? 相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,可以减少一次解析. 看来这个入门问题还有人不清楚,其实这两者是有区别的. localhos ...

  3. 用来代替本机IP的万能IP:127.0.0.1

    用来代替本机IP的通用IP:127.0.0.1

  4. 本机ip、127.0.0.1和0.0.0.0区别及内环流量

    本机ip.127.0.0.1和0.0.0.0区别及内环流量 所谓内环流量 简单的说是指 计算机内部,程序间通讯产生的流量,或者叫 本地流量,对应的是来自网络的流量. 比如,你安装了卡巴斯基,avast ...

  5. 在Win10下搭建web服务器,使用本机IP不能访问,但是使用localhos或127.0.0.1可以正常访问的解决办法

    最近在在Win10下搭建web服务器,发现通过windows自带的浏览器win10 edge浏览器使用本机IP不能放问,但是使用localhos或127.0.0.1可以正常访问, 后来无意发现,使用w ...

  6. localhost,127.0.0.1 和 本机IP 三者的区别

    localhost.127.0.0.1和本机IP的区别如下: 1.首先 localhost 是一个域名,在过去它指向 127.0.0.1 这个IP地址.在操作系统支持 ipv6 后,它同时还指向ipv ...

  7. 127.0.0.1和0.0.0.0和本机IP的区别

    在一次网络课程的听课中,我突然察觉到自己有个疑惑就是在配置一些服务的时候我们会用到localhost(127.0.0.1)或者0.0.0.0 和当前主机IP这三个.那么具体该怎么使用这三个地址,这三个 ...

  8. 本机ip和127.0.0.1的区别

    简介 连接上因特网的每一台计算机都会有一个IP地址, 在linux下可以使用命令ifconfig来查看本机的ip地址(windows为ipconfig), 比如我当前电脑的ip地址为192.168.0 ...

  9. localhost/127.0.0.1/本机IP的区别以及端口号

    端口号: http请求默认的端口是:80 PHPstudy中的端口号: Apache服务器的端口是:80 MySQL数据库的端口是:3306 PHP项目端口是:9000 禅道中的端口号: Apache ...

随机推荐

  1. Word中MathType公式与LaTeX公式的转换

    1. 对Word文档中用MathType输入的公式,在word中,选中mathtype公式,按住“Alt+\”键,可以将MathType公式转换成Latex格式. 2. 同样,将Latex格式的公式代 ...

  2. 【转】(三)unity4.6Ugui中文教程文档-------概要-UGUI Basic Layout

    原创至上,移步请戳:(三)unity4.6Ugui中文教程文档-------概要-UGUI Basic Layout 2. BasicLayout 在这一节我们会看到UI元素相对于画布的位置是怎样的. ...

  3. 使用线性回归识别手写阿拉伯数字mnist数据集

    学习了tensorflow的线性回归. 首先是一个sklearn中makeregression数据集,对其进行线性回归训练的例子.来自腾讯云实验室 import tensorflow as tf im ...

  4. Java Web项目部署时 “Exploded Archive”模式部署时无效

    在myeclipse中部署项目时,当Deploy type为Exploded Archive(deveplopment mode)时,finish按钮为灰色,无法部署的解决方法: 1.project上 ...

  5. ios label 简单的长按复制文本信息

    在iOS开发过程中,有时候会用到UILabel展示的内容,那么就设计到点击UILabel复制它上面展示的内容的功能,也就是Label长按复制功能.网上有很多种给Label添加长按复制功能的方法,这里我 ...

  6. hadoop 大数据 介绍

    1.Hadoop是一个大家族,是一个开源的生态系统,是一个分布式运行系统,是基于Java编程语言的架构.不过它最高明的技术还是HDFS和MapReduce,使得它可以分布式处理海量数据. 2.HDFS ...

  7. centos6.5 redis应用环境搭建

    1. 官网下载安装 需要安装 ctl 支持 yum install ctl > wget http://download.redis.io/releases/redis-3.0.5.tar.gz ...

  8. C语言 · 陶陶摘苹果2

    算法提高 陶陶摘苹果2   时间限制:1.0s   内存限制:256.0MB      问题描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出n个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个 ...

  9. python3 scrapy 安装记录

    一开始,想通过pycharm 直接安装,没想到出现下面的错误: Microsoft Visual C++ 14.0 is required... 的错误 网上有方法,是通过安装 VC++14.0 ,但 ...

  10. ubuntu 14.04 gitlab 的搭建

    经过两天的尝试,gitlab 终于在 ubuntu14.04 上面搭建起来. 一.安装相关软件. // 执行如下命令: sudo apt-get install vim git curl openss ...