背景

计算机间要实现网络通信,就必须要有一个合法的IP地址。

定义

IP地址是因特网上的某个设备的一个编号,IP地址一般由网络号、和主机号来组成。简写为:IP地址=网络地址+主机地址。

如IP地址192.168.100.102,它的构成如下:
网络地址:192.168.100.0
主机地址:0.0.0.102
IP地址=网络地址+主机地址=192.168.100.1
广播地址:192.168.100.255

一般内网的IP地址是以192.168开头的,公网可以是以100.110.开头。而内网的IP地址是私有地址,是不能直接在internet网络中应用的,需要转为公有地址。

使用

用网线直接连接的计算机或通过HUB(集线器)或普通交换机间接连接的计算机之间要想相互通讯,它们必须要在同一个网络,也就是说他们的网络地址必须相同,且主机地址必须不一样。

计算网络地址就是判断网络中的计算机在不在同一个网络,在就能通,不在就不能通。

子网掩码

IP地址是要搭配子网掩码来使用的。

子网掩码是用来判断任意两台计算机的ip地址是否属于同一子网络的根据。最为简单的理解就是两台计算机各自的ip地址与子网掩码进行and运算后,得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。

子网掩码的长度和IP地址一样也是一串32位的二进制数字,只不过为人类的可读性和记忆性的方便,通常使用十进制数字来表示。二进制给机器看,十进制给人看。

子网掩码就是用来遮掩IP地址并划分网段的工具,根据遮掩的位数不同来划分不同的网段。

子网掩码还需要满足一个条件才可以使用:把子网掩码转换为二进制,它的二进制中1和0必须是连续的。

同一个IP地址根据不同子网掩码,会划分出不同的网络号和机器号。

计算网络地址

计算过程:将IP地址和子网掩码都换算成二进制,然后进行与运算,得到的结果就是网络地址。
如:IP地址:202.99.160.50 子网掩码是255.255.255.0
1)将IP地址和子网掩码分别换算成二进制
202.99.160.50换算成二进制为:11001010 01100011 10100000 00110010
255.255.255.0换算成二进制为:11111111 11111111 11111111 00000000
2)将二者进行与运算,得到结果为:11001010 01100011 10100000 00000000
3)将运算结果换算成十进制,就是网络地址:202.99.160.0
也就是说,从200.99.160.0到200.99.160.255都是同一个子网网段(网络号),里面的0-255号可以分配给不同的机器,0-255号都是机器的号码。

扩展

实际使用过程中,我们需要用ping命令来确定两台计算机是否可以通,如果ping不同,如何让ip不在同一个网段的计算机相互访问呢?

方法如下:

1.如果是同处于一个内部网络环境的,就是一个大的局域网。比bai如192.168.0.1/24和192.168.1.1/24,他们并不在一个网段内所以无法直接ping通。这时候可以把2台计算机接入路由器设置静态或者动态路由,计算机网关指向路由,这样icmp包就可以相互到达,双方ping通。

2.有一种情况是有一台机器是属于内网的ip如192.168.10.1,另外一台计算机是公网IP,如202.100.1.17,如果这2台要ping通的话,内网IP的那台机器只要能联网就能ping的通公网IP的计算机,而公网的计算机要访问内网计算机,需要通过VPN或者端口映射来完成访问。

3.如果2台计算机同时处于公网内,只要能联网肯定是可以ping通的。要ping通,必须B能回应消息,故B也会发查找网关的MAC arp请求,明显能通。假设B设置网关为另一个不存在的ip,那么B会一直arp请求,也是ping不通,若B没有设置网关,不会转发arp请求的,也ping不通。

参考:
https://blog.csdn.net/weixin_42724467/article/details/90293151
https://www.zhihu.com/question/56895036/answer/150953183
https://zhidao.baidu.com/question/552912715.html
http://www.eepw.com.cn/article/284131.htm
https://zhuanlan.zhihu.com/p/71534299
https://hsk.oray.com/news/5946.html

与IP地址有关的那些点相关推荐

  1. Go 学习笔记(79)— Go 标准库 net(获取本机IP地址)

    1. 获取本机 IP 地址 package mainimport ("fmt""net" )// 获取本机网卡IP func getLocalIP() (ipv ...

  2. Docker 入门系列(5)- Docker 端口映射(映射所有IP地址、映射到指定地址和指定端口、映射指定地址任意端口、查看映射端口配置)

    端口映射 映射容器内应用的服务端口到本地宿主主机 1. 从外部访问容器应用 在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的.当容器中运行一些网络应用,要 ...

  3. 分享2020 几个好用的ip地址归属地查询

    ip地址归属地查询接口 一.百度 大公司,不必说,肯定好用,我就一直用的他作为主要查询接口. url:http://opendata.baidu.com/api.php params:query=ip ...

  4. win10安装虚拟机提示主IP地址显示网络信息不可用

    问题:在虚拟机详情下面显示 主ip地址:网络信息不可用 解决方案 先root用户[root@localhost~]#cd - [root@localhost/]#cd /etc/sysconfig/n ...

  5. php dedecms 记录访问者ip,dedecms实现显示访问者ip地址的方法

    有时候我们需要在网站底部或其他地方显示访问者IP地址,这样我们可以在需要的位置放以下代码来显示: {dede:php} $user_IP = ($_SERVER["HTTP_VIA" ...

  6. Android 获取联网的IP地址

    这个方法需要先判断当前应用是否联网 联网判断的方法,请查看 首先你需要确保配置文件应添加了联网的权限 如果没有下面的直接的赋值过去即可 <uses-permission android:name ...

  7. 关于创建zeromq消息队列,设置和更改IP地址,远程可以访问,不只是本地链接。python代码。

    关于zeromq的创建,绑定本地,和绑定其他客户端的方法. 网上一大堆关于zmq的通信模式的介绍,包括三种类型,具体我就不在描述. 但是他们给的demo,都是创建本地作为server服务端,也作为cl ...

  8. Django mysql 多线程_【实例:利用Django管理后台管理IP地址】(四)Django test+多线程+数据库+(踩坑)...

    准备在views.py编写函数,多线程检测每个IP地址的占用情况.胡乱一通写完之后,哦豁,怎么测试写得对不对呢? 一开始想单独测试views.py文件,结果要引入各种包和配置文件,还要注意各种顺序,各 ...

  9. java 获取linux mac_java在linux获得ip地址和mac

    以前在linux下获取ip和mac一般使用jni,调用linux的ioctl.当然也有使用shell获取的. 发现在jdk 6下已经实现了,java.net.NetworkInterface上面有静态 ...

  10. java获取当前电脑的ip_Java获取电脑真实IP地址的示例代码

    /** * @author yins * @date 2018年8月12日下午9:53:58 */ import java.net.Inet4Address; import java.net.Inet ...

最新文章

  1. SQLMap安装步骤
  2. python 笔记 之 类的继承与重写
  3. Talend open studio数据导入、导出、同步Mysql、oracle、sqlserver简单案例
  4. 计算机主机磁盘怎么开,电脑bios怎么设置硬盘启动
  5. DOM和Diff算法你应该知道的那些事,快收藏!
  6. vs2013+EF6+Mysql
  7. 神武4手游服务器维护,神武4手游 本周新手服限服开启 !
  8. 本科计算机应用水平,湖南工程学院全日制非计算机专业本科生参加湖南省计算机应用水平等级考试的规定...
  9. 【MySQL】MySQL监控工具 mysql-monitor
  10. mysql 处理文件函数_mysql数据处理与函数
  11. Linux_c++线程函数的使用
  12. html table 表格
  13. liunx 之 redHat 下 java 环境的配置和安装
  14. 网络割接方案模板(范文)
  15. 水平制表符 \t 和 垂直制表符\v的区别
  16. CSI笔记【11】:阵列信号处理及MATLAB实现(第2版)阅读随笔(三)
  17. 移动开发采用什么平台好?
  18. 超级详细的vue2学习笔记
  19. 第三节: 水泥混凝土路面构造特点
  20. 股票-每日复盘-5-24

热门文章

  1. CSS 浅析position:relative/absolute定位方式
  2. RecyclerView.ItemDecoration 间隔线
  3. jquery 左右移动 以及使用layer.js弹出框呈现在页面上
  4. POJ3250(单调栈)
  5. 96. Unique Binary Search Trees(I 和 II)
  6. IOS控件内容 对齐方式
  7. 《梦断代码》随笔第2篇
  8. SQL SERVER 2000数据库,转换为ACCESS数据库(已解决ACCESS自动编号问题)
  9. 重写方法,重载方法,虚方法和抽象方法的使用
  10. RESTFUL协议入门介绍