IP地址组成与类型

一个IP地址由4个字节共32位的数字串组成,这4个字节通常用小数点分隔。每个字节可用十进制或十六进制表示,如129.45.8.22或0x8.0x43.0x10.0x26 就是用十进制或十六进制表示的IP地址。IP地址也可以用二进制表示。

  一个IP地址包括两个标识码(ID),即网络ID和宿主机ID。

  同一个物理网络上的所有主机都用同一个网络ID,网络上的一个主机(包括网络上工作站、服务器和路由器等)有一个主机ID与其对应。据此把IP地址的4个字节划分为2个部分,一部分用以标明具体的网络段,即网络ID;另一部分用以标明具体的节点,即宿主机ID。

  在这32位地址信息内有五种定位的划分方式,这五种划分方法分别对应于A、B、C、D和E类IP地址。

  A类:一个A类IP地址由1个字节的网络地址和3个字节主机地址组成,网络地址的最高位必须是“0”(每个字节有8位二进制数)。

  B类:一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高两位必须是“10”。

  C类:一个C类地址是由3个字节的网络地址和1个字节的主机地址组成,网络地址的最高三位必须是“110”。

  D类:用于多点播送。第一个字节以“1110”开始。因此,任何第一个字节大于223小于240的IP地址是多点播送地址。全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。

  E类:以“11110”开始,为将来使用保留。

  用作特殊用途的IP地址:凡是主机段,即宿主机ID全部设为“0”的IP地址称之为网络地址,如129.45.0.0;广播地址:凡是主机ID部分全部设为“1”的IP地址称之为广播地址,如129.45.255.255;保留地址:网络ID不能以十进制“127”作为开头,在此类地址中数字127保留给诊断用。如127.1.1.1用于回路测试,同时网络ID的第一个8位组也不能全置为“0”,全“0”表示本地网络;网络ID部分全部为“0”和全部为“1”的IP地址被保留使用。

  IP地址是适合大型网和小型网的。地址是自定义的,它的最高位定义地址的类型。A类地址支持多个主机在一个网:最高位为0,跟随有7Bit网络部分和24Bit主机部分。在B类地址,最高位是非0,跟随有14Bit网络号和16Bit主机号。C类地址以110开始,跟随有21Bit网络号和8Bit主机号。按常规,IP地址由加点的字符给出。地址由四部分10进制数组成,用点作分隔。例如,10.0.0.51和128.10.2.1分别是A类和B类的IP地址。 文章录入:dnbm    责任编辑:dnbm

(0)

相关推荐

  • 使用Java代码将IP地址转换为int类型的方法

    基本知识点    IP --> 整数: 把IP地址转化为字节数组 通过左移位(<<).与(&).或(|)这些操作转为int 整数 --> IP: 将整数值进行右移位操作(>>>),右移24位,再进行与操作符(&)0xFF,得到的数字即为第一段IP. 将整数值进行右移位操作(>>>),右移16位,再进行与操作符(&)0xFF,得到的数字即为第二段IP. 将整数值进行右移位操作(>>>),右移8位,再进行与操

  • C/C++ ip地址与int类型的转换实例详解

    C/C++ ip地址与int类型的转换实例详解 前言 最近看道一个面试题目,大体意思就是将ip地址,例如"192.168.1.116"转换成int类型,同时还能在转换回去 思路 ip地址转int类型,例如ip为"192.168.1.116",相当于"."将ip地址分为了4部分,各部分对应的权值为256^3, 256^2, 256, 1,相成即可 int类型转ip地址,思路类似,除以权值即可,但是有部分字符串的操作 实现代码 #include &l

  • IP地址组成与类型

    一个IP地址由4个字节共32位的数字串组成,这4个字节通常用小数点分隔.每个字节可用十进制或十六进制表示,如129.45.8.22或0x8.0x43.0x10.0x26 就是用十进制或十六进制表示的IP地址.IP地址也可以用二进制表示. 一个IP地址包括两个标识码(ID),即网络ID和宿主机ID. 同一个物理网络上的所有主机都用同一个网络ID,网络上的一个主机(包括网络上工作站.服务器和路由器等)有一个主机ID与其对应.据此把IP地址的4个字节划分为2个部分,一部分用以标明具体的网络段,即网络I

  • Java判断本机IP地址类型的方法

    复制代码 代码如下: package net; import java.net.*; /*  *  getAddress方法和getHostAddress类似,它们的唯一区别是getHostAddress方法返回的是字符串形式的IP地址,  *  而getAddress方法返回的是byte数组形式的IP地址.  *  Java中byte类型的取值范围是-128?127.如果返回的IP地址的某个字节是大于127的整数,在byte数组中就是负数.  *  由于Java中没有无符号byte类型,因此,

  • JS获取客户端IP地址、MAC和主机名的7个方法汇总

    今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome.FireFox中很少搞到直接利用ActiveX获取IP等的JS脚本.下面的代码是我在所有windowsNT5.0及以上的系统上都测试通过的,给出代码: 一.使用JS获取客户端IP的几个方法 方法一(只针对IE且客户端的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000). 获取客户端IP代码: 复制代码 代码如下: <HTML> <HE

  • VMware中ubuntu虚拟机与windows的端口映射共享一个IP地址的设置教程(图文教程)

    在ubuntu虚拟机中,运行了meteor的后台程序,需要终端进行连接,需要进行ubuntu虚拟机与windows的端口映射(虚拟机与主机共享IP地址). 下面为设置步骤: 1.点击编译,虚拟网络编辑器 2.在虚拟网络编辑器界面,点击下方的更改设置,获取管理员权限 3.选择"NAT模式",在下方VMnet信息中,点击"NAT设置(s)..." 4.点击添加,添加一条端口转发信息 5.第4步,点击添加按钮之后,跳出映射传入端口,输入相关信息,主机端口,类型,虚拟机IP

  • PHP中IP地址与整型数字互相转换详解

    IP转换成整型存储是数据库优化一大趋势,不少人目前存储IP时还在使用字符串类型存储,字符串索引比整型索引消耗资源很多,特别是表中数据量大的时候,以及求查询某一个ip段的数据,今天说的ip是指ip4,ip6不在本文范围内. 系统函数ip2long与long2ip PHP中有内置函数ip2long可以将ip地址转换整型. 复制代码 代码如下: $ip = '210.110.11.49'; echo ip2long($ip); 输出: 复制代码 代码如下: -764540111 输出的整型有负号是因为

  • C#实现获取设置IP地址小工具

    界面效果图如下: 报表界面 说下关键代码 需要开启 Windows Management Instrumentation服务(默认已经开启),在程序中需要增加 Management引用. 主要有NetworkAdapter(保存适配器的IP地址,网关,子网掩码,设置IP方面等 ),NetworkAdapterUtil(主要是NetworkAdapter类的集合 )两个类. 在windows8 需要在app.manifest文件中 修改配置  <requestedExecutionLevel le

  • MySQL存储IP地址的方法

    为什么要问如何存储IP? 首先就来阐明一下部分人得反问:为什么要问IP得怎样存,直接varchar类型不就得了吗? 其实做任何程序设计都要在功能实现的基础上最大限度的优化性能.而数据库设计是程序设计中不可忽略的一个重要部分,所以巧存IP地址可以一定程度获得很大提升. 利用函数算法处理 在MySQL中没有直接提供IP类型字段,但如果有两个函数可以把IP与最大长度为10位数字类型互转,所以使用int类型存储IP比varchar类型存储IP地址性能要提升很多,减少不少空间.因为varchar是可变长形

  • Java输出通过InetAddress获得的IP地址数组详细解析

    使用 InetAddress 获取 IP 地址会得到一个 byte 数组如果你直接输出这个数组,你会发现 IP 地址中的某些位变成了负数比如 61.135.169.105 会输出成 61.-121.-87.105仔细看一看,会发现 135 + 121 = 256,169 + 87 = 256 -_-! 怎么个情况! 我首先想到的是 byte 类型向 int 类型转换过程中出现了问题,后来发现,实际不然 因为 Java 中没有 unsigned 类型,所以byte.short.int.long 都

随机推荐