网络-IP/子网掩码/端口

2024-06-13 12:38
文章标签 ip 网络 端口 子网掩码

本文主要是介绍网络-IP/子网掩码/端口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

下面有这样一个号码:010-12345678
想必一眼就能看出,这是北京市的一个电话号码,其中010代表北京,12345678代表这个城市的一部电话,也就是说,一个电话号的格式是:区号-电话号

而IP,也是上述的格式,比方说有这样一个IP:172.20.7.126,那么如何区分出哪个是区号,哪个是电话号呢?有两种方式

1.指定区号长度
2.由子网掩码告诉我们哪些是区号

1.指定区号长度
假设我告诉你172.20.7.126前6个数是区号,那么你一定知道172.20.7是区号,但是实际上我不能告诉你前6个是区号,因为172.20.7.126的标准写法是

172.020.007.126

也就是说标准写法不能省略0,省略0的写法只是我们人类更友好的可读,好了,现在我和你说“172.20.7.126的前9位是区号”,那么首先应该将172.20.7.126变成172.020.007.126,然后查9位,得出区号是172.020.007,但是和上面的道理一样,我不能直接告诉你前9位,因为IP协议规定要以IP的二进制方式告诉你,而不是IP的十进制172.020.007,那么下面要把172.020.007转换成二进制

172020007总长度
1010 11000001 01000000 011124

所以现在说法又改成了172.020.007.126前24位是区号,那么这个IP的区号是

172.020.007

但是我们都知道,作为程序员,一般都喜欢从0开始查数,所以说法又改成了172.020.007.126前23位是区号,那么这个IP的区号是

172.020.007

最终,这个IP的标准写法就是:172.020.007.126/23
人们通常写成:172.20.7.126

2.由子网掩码告诉我们哪些是区号,假设我告诉你子网掩码是255.255.255.0(C类IP),IP是172.20.7.126
首先将IP转成二进制:

172020007126
1010 11000001 01000000 01110111 1110

再讲子网掩码转换成二进制:

2552552550
1111 11111111 11111111 11110000 0000

将两个二进制进行&与操作

-172&255020&255007&255126&0
IP1010 11000001 01000000 01110111 1110
掩码1111 11111111 11111111 11110000 0000
与操作结果1010 11000001 01000000 01110000 0000

结果的十进制表示:172.20.7.0
IP协议规定:以0结尾的IP地址,表示的是网段,而172.20.7.0正好是以0结尾,所以这是一个网段,值为172.20.7
综上得知:"区号"是172.20.7

注意:子网掩码可能是任意值(本例是255.255.255.0),具体可搜索【IP的分类】,本文不再赘述

端口
一个端口代表一个程序
0-1024是约定俗成的各种服务,比如80基本都是http,443基本都是https程序,我们自己不要更改
1025-49151:叫注册端口,这些端口用于我们自己程序的绑定
49152-65535:叫动态端口,都是动态分配的,假设我是客户端,现在我和某个服务器建立连接,当建立连接之后,系统会给我分配一个端口,我使用该端口和服务器一直保持通信,此时使用的就是动态端口,如果连接没有断开,则一直使用该端口

这篇关于网络-IP/子网掩码/端口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1057324

相关文章

python如何下载网络文件到本地指定文件夹

《python如何下载网络文件到本地指定文件夹》这篇文章主要为大家详细介绍了python如何实现下载网络文件到本地指定文件夹,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下...  在python中下载文件到本地指定文件夹可以通过以下步骤实现,使用requests库处理HTTP请求,并结合o

Linux高并发场景下的网络参数调优实战指南

《Linux高并发场景下的网络参数调优实战指南》在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃,本文基于真实案例分析,从参数解读、问题诊断到优... 目录一、问题背景:当并发连接遇上性能瓶颈1.1 案例环境1.2 初始参数分析二、深度诊断:连接状态与

Java根据IP地址实现归属地获取

《Java根据IP地址实现归属地获取》Ip2region是一个离线IP地址定位库和IP定位数据管理框架,这篇文章主要为大家详细介绍了Java如何使用Ip2region实现根据IP地址获取归属地,感兴趣... 目录一、使用Ip2region离线获取1、Ip2region简介2、导包3、下编程载xdb文件4、J

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

如何使用Nginx配置将80端口重定向到443端口

《如何使用Nginx配置将80端口重定向到443端口》这篇文章主要为大家详细介绍了如何将Nginx配置为将HTTP(80端口)请求重定向到HTTPS(443端口),文中的示例代码讲解详细,有需要的小伙... 目录1. 创建或编辑Nginx配置文件2. 配置HTTP重定向到HTTPS3. 配置HTTPS服务器

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地