本机IP地址、 127.0.0.1 和 0.0.0.0 的区别
概述
总体来讲,127.0.0.1是本机的环回地址,0.0.0.0代表本机上任何IP地址。下面分别详细讲解
IP类型
IP地址一共分为5类,即A~E,它们分类的依据是其net-id所占的字节长度以及网络号前几位
- A类地址:网络号占1个字节。网络号的第一位固定为0
- B类地址:网络号占2个字节。网络号的前两位固定为10
- C类地址:网络号占3个字节。网络号的前三位固定为110
- D类地址:前四位是1110,用于多播(multicast),即一对多通信
- E类地址:前四位是1111,保留为以后使用
内网地址
10.x.x.x 172.16.x.x~172.31.x.x 192.168.x.x 这些地址被用到内网中,不与外网相连
回环地址127.0.0.1
严格来说127.0.0.1只是回环地址之一。所有127.x.x.x都是回环地址。从127.0.0.0到127.255.255.255均予以保留。此地址块中的任何地址都将环回到本地主机中。此地址块中的任何地址都绝不会出现在任何网络中。代表本地主机,在windows和linux上等价于localhost
环回地址:所有发往该类地址的数据包都应该被loop back。正常的网络包从IP层进入数据链路层,然后发送到网络上,而发向loop back地址的包,直接在IP层短路了,也就是发到IP层的包直接被IP层接收了,不再向下发送。
环回地址主要用来做回环测试,通过使用ping 127.0.0.1测试某台机器上的网络设备,操作系统或者TCP/IP实现是否工作正常。
任何地址0.0.0.0
0.0.0.0不能ping通。0.0.0.0就是任何地址IP_ADDR_ANY,任何地址的意思就是包括环回地址。
任何地址IP_ADDR_ANY的意思就是,不管主机有多少个网口,多少个IP,如果监听本机的0.0.0.0上的端口,就等于监听机器上的所有IP端口。数据报的目的地址只要是机器上的一个IP地址,就能被接受。
举例说明
为了讲清楚本机IP地址、127.0.0.1和0.0.0.0三者的区别。下面举例说明,先假设pc1(server+client)有两个网卡:192.168.0.1、10.10.152.8。pc2只是client。
- pc1(server)只监听127.0.0.1,pc1(client)能连上127.0.0.1和0.0.0.0(192.168.0.1和10.10.152.8连不上);pc2连不上pc1的任何地址(192.168.0.1或者10.10.152.8)
- pc1(server)只监听 192.168.0.1 ,pc1(client)能连上 192.168.0.1 和 0.0.0.0 ( 127.0.0.1 和 10.10.152.8 连不上);pc2能连上pc1的 192.168.0.1 ( 10.10.152.8 连不上);(只监听 10.10.152.8与此例类似)
- pc1(server)监听 192.168.0.1 和 10.10.152.8 ,pc1(client)能连上 192.168.0.1 、 10.10.152.8 和 0.0.0.0 ( 127.0.0.1 连不上);pc2都能连上pc1的(包括 10.10.152.8 和 192.168.0.1 )
- pc1(server)只监听 0.0.0.0 ,pc1(client)都能连上(包括 10.10.152.8 、 0.0.0.0 、 127.0.0.1 和 192.168.0.1 );pc2都能连上pc1的(包括 10.10.152.8 和 192.168.0.1 )
总结
对于只进行单机测试,一般只需要监听127.0.0.1
对于多机测试,可监听所有IP 0.0.0.0或者只监听某个或某几个具体的IP。对于多机连接,监听127.0.0.1无效,监听0.0.0.0就没有了屏蔽其他IP的功能
本机IP地址、 127.0.0.1 和 0.0.0.0 的区别相关推荐
- Java配置jdbc连接数据库不限制ip设置方法(localhost/127.0.0.1/本机ip地址)
jdbc配置连接数据库不限制ip设置方法(localhost/127.0.0.1/本机ip地址(配置)) 说明: 一般新安装的mysql数据库默认是不开启ip访问的 localhost/127.0.0 ...
- 用java获取本机IP地址
在网上找了几个用java获取本机IP地址的代码,发现都少都有些不完美,自己整理了一下.突然之间很想把自己的IP地址给获取了,虽然用系统自带命令可以得到,但自己想写一个程序获取一下,到网上搜索了一下ja ...
- win10系统ping服务器,win10怎么ping ip地址_win10怎样ping本机ip地址
大家都知道,我们要测试本机和该IP地址是否能正常通讯,只需要ping后面加上IP地址即可测试,然而有win10系统用户不知道要怎样ping本机ip地址,针对这个问题,小编就给大家讲解一下win10 p ...
- linux编程获取本机IP地址的三种方法
这是一项不太清晰而且没有多大意义的工作.一个原因是网络地址的设置非常灵活而且都是允许用户进行个性化设置的,比如一台计算机上可以有多块物理网卡或者虚拟网卡,一个网卡上可以绑定多个IP地址,用户可以为网卡 ...
- java 本机局域网真实ip_Java获取本机ip地址,并扫描本机所在局域网的电脑设备
Java获取本机IP地址,并根据IP地址的网段,扫描局域网里面的电脑设备; import java.io.IOException; import java.net.Inet4Address; impo ...
- centos7 shell 获取ip_Linux Shell脚本中获取本机ip地址方法
方法一:ifconfig -a ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "a ...
- 使用java代码查询本机ip地址
一.使用java代码查询本机ip地址 public class TestInetAddress {public static void main(String[] args) {try {String ...
- Shell脚本中获取本机ip地址
1.单网卡 方法1: #!/bin/sh local_ip=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2} ...
- Linux下 shell获取本机ip地址
方法二 /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6 | awk '{print $2}' | tr -d "add ...
最新文章
- Android动画之帧动画和补间动画
- python 文件保存读取时不用with的问题
- Shell 学习笔记之运算符
- 如何在WhatsApp中将群聊静音
- oracle删除实体,oracle 按条件删除、查询表
- 在Ubuntu 18.04系统上安装Java 11的方法
- api es7 删除所有数据_Elasticsearch7.1中文文档-第四章-API约定
- C++新手入门学习笔记(跟着敲)
- Page.IsPostBack
- linux下批量查找UTF-8的BOM文件,并去除BOM
- 计算机思维论文1万字,计算机思维学论文选题 计算机思维论文题目怎么取
- 深度学习:文本CNN-textcnn
- PT工具之Docker全家桶+HTTPS详细配置教程
- H264格式详细说明
- WireShark抓取网站用户名和密码
- Xcode中iOS项目目标变为Mac的解决办法
- 企业跨境电商平台服务解决方案,跨境电子商务贸易业务框架搭建运维
- JPEG2000图象压缩标准及其关键算法(转)
- XP中服务与后门技术
- 你真的会用ls命令吗?--文件管理命令(ls命令详解)