精华内容
下载资源
问答
  • C# 判断主机IP合法性算法 C#判断主机IP合法性算法,类似判断IP地址范围是否正确的算法,并不是判断Ip是否是连通的。
  • 内容索引:C#源码,系统相关,算法 C#判断主机IP合法性算法,类似判断IP地址范围是否正确的算法,并不是判断Ip是否是连通的。
  • 主要介绍了Java 判断IP地址合法性实例详解的相关资料,需要的朋友可以参考下
  • 如何判断IP地址是否合法

    千次阅读 2017-09-22 09:53:15
    如何判断一个IP地址是否合法,以及如何判断一个IP地址是否在给定的IP地址范围内,废话不多说,上代码 判断IP地址是否合法: bool isValidIP(char *ip) { if (ip == NULL) return false; char temp[4];...
    如何判断一个IP地址是否合法,以及如何判断一个IP地址是否在给定的IP地址范围内,废话不多说,上代码 
    


    判断IP地址是否合法:

    bool isValidIP(char *ip)
    {
    	if (ip == NULL)
    		return false;
    	char temp[4];
    	int count = 0;
    	while (true)
    	{
    		int index = 0;
    		while (*ip != '\0' && *ip != '.' && count < 4)
    		{
    			temp[index++] = *ip;
    			ip++;
    		}
    		if (index == 4)
    			return false;
    		temp[index] = '\0';
    		int num = atoi(temp);
    		if (!(num >= 0 && num <= 255))
    			return false;
    		count++;
    		if (*ip == '\0')
    		{
    			if (count == 4)
    				return true;
    			else
    				return false;
    		}
    		else
    			ip++;
    	}
    }




    判断一个IP地址是否在给定的IP地址范围内:

    bool IsIpInner(string strDesIp, string strBegin, string strEnd)
    {
    	char* tempDesIp = const_cast<char*>(strDesIp.c_str());
    	char* tempBegin = const_cast<char*>(strBegin.c_str());
    	char* tempEnd = const_cast<char*>(strEnd.c_str());
    	if (isValidIP(tempDesIp) && isValidIP(tempBegin) && isValidIP(tempEnd))
    	{
    		unsigned long lDesIp = GetIpInt(strDesIp);
    		unsigned long lBegin = GetIpInt(strBegin);;
    		unsigned long lEnd = GetIpInt(strEnd);;
    		return (((lDesIp >= lBegin) && (lDesIp <= lEnd)) || ((lDesIp <= lBegin) && (lDesIp >= lEnd)));
    	}
    	else
    		return false;
    }

    其中GetIpInt(string strIp)是将IP地址转化为可比较大小的整形数,如下:

    unsigned long GetIpInt(string strIp)
    {
    	char* tempIp = const_cast<char*>(strIp.c_str());
    	char *next_token = NULL;
    	char* ch1 = strtok_s(tempIp, ".", &next_token);
    	char* ch2 = strtok_s(NULL, ".", &next_token);
    	char* ch3 = strtok_s(NULL, ".", &next_token);
    	char* ch4 = strtok_s(NULL, ".", &next_token);
    	unsigned long a = stoi(ch1);
    	unsigned long b = stoi(ch2);
    	unsigned long c = stoi(ch3);
    	unsigned long d = stoi(ch4);
    	return a * 255 * 255 * 255 + b * 255 * 255 + c * 255 + d;
    }


    展开全文
  • 1)以命令行格式运行:ip_test subnet/mask ip_addr ...4) 在IP地址合法的前提下,判断ip_addr是否属于子网subnet 5)输出命令行中的IP是否合法,掩码是否合法(可适当给出不合法原因)以及ip_add
  • 该程序可根据输入的ip地址和子网掩码判断输入的是否合法,如果合法将输出其主机号的网络号。
  • 笔试1--判断一个IP地址是否合法

    万次阅读 2018-03-23 22:07:57
    互联网上的每个接口必须有一个唯一的Internet地址,称为IP地址IP地址长32bit。这些32位的地址通常写成四个十进制的数,其中每个数对应一个字节。这种表示方法也称“点分十进制”。五类IP不同的网络地址格式为如下...

    互联网上的每个接口必须有一个唯一的Internet地址,称为IP地址。IP地址长32bit。这些32位的地址通常写成四个十进制的数,其中每个数对应一个字节。这种表示方法也称“点分十进制”。

    五类IP不同的网络地址格式为如下图:(从上至下依次为A类、B类、C类、D类、E类)


    各类IP地址的范围:

    类型范围

    A

    B

    C

    D

    E

        0.0.0.0到127.255.255.255

    128.0.0.0到191.255.255.255

    192.0.0.0到223.255.255.255

    224.0.0.0到239.255.255.255

    240.0.0.0到247.255.255.255

    代码:

    #include<iostream>
    #include<string>
    using namespace std;
    
    bool IsLegal_Ip(const string ipaddr)
    {
    	int len=ipaddr.length();//计算字符串的长度
    	int stage=0;//该IP地址共有几部分
    	int stage_value=0;//每个部分的值
    	int is_stage=0;//判断当前部分是否有值
    
    	if(isalpha(ipaddr[0]))//===》if(ipaddr[i]>='a'&&ipaddr[i]<='z'&&ipaddr[i]>='A'&&ipaddr[i]<='Z')
    		return false;
    
    	for(int i=0;i<len;++i)
    	{
    		if(isdigit(ipaddr[i]))//==》if(ipaddr[i]>='0' && ipaddr[i]<='9')
    		{
    			stage_value=stage_value*10+(ipaddr[i]-'0');
    			++is_stage;
    		}
    		else if(ipaddr[i]=='.')
    		{
    			if(stage_value<=255 && is_stage>0)
    				++stage;
    			else
    				return false;
    			
    			//进行下一轮判断,重新置为0
    			is_stage=0;
    			stage_value=0;
    		}
    		else//判断有负数的情况
    			return false;	
    	}
    
    	//判断第四部分是否满足IP地址的要求
    	if(stage_value<=255 && is_stage>0)
    		++stage;
    	
    	if(stage==4)
    		return true;
    	else 
    		return false;
    }
    
    int main()
    {
    	if(IsLegal_Ip("192.168.1.120"))//true
    		cout<<"true"<<endl;
    	else
    		cout<<"false"<<endl;
    	
    	if(IsLegal_Ip("0.0.0.0"))//true
    		cout<<"true"<<endl;
    	else
    		cout<<"false"<<endl;
    	
    	if(IsLegal_Ip("acd"))//false
    		cout<<"true"<<endl;
    	else
    		cout<<"false"<<endl;
    
    	if(IsLegal_Ip("362.21.0.0"))//false
    		cout<<"true"<<endl;
    	else
    		cout<<"false"<<endl;
    	
    	if(IsLegal_Ip("125.6"))//false
    		cout<<"true"<<endl;
    	else
    		cout<<"false"<<endl;
    
    	if(IsLegal_Ip("-1.1.1.1"))//false
    		cout<<"true"<<endl;
    	else
    		cout<<"false"<<endl;
    
    	return 0;
    }

    展开全文
  • 文章目录如何配置 IP 地址?动态主机配置协议 (DHCP)解析 DHCP 的工作方式 如何配置 IP 地址? 如何配置呢?若用命令行自己配置一个地址。可以使用ifconfig,也可以使用 ip addr。设置好了以后,用这两个命令,将...

    如何配置 IP 地址?

    如何配置呢?若用命令行自己配置一个地址。可以使用ifconfig,也可以使用 ip addr。设置好了以后,用这两个命令,将网卡 up 一下,就可以开始工作了。

    使用 net-tools:

     sudo ifconfig eth1 10.0.0.1/24
     sudo ifconfig eth1 up
    

    使用 iproute2:

     sudo ip addr add 10.0.0.1/24 dev eth1
     sudo ip link set up eth1
    

    这样看自己配置自由度太大了吧,如果配置一个和谁都不搭边的地址呢?例如,旁边的机器都是 192.168.1.x,我非得配置一个 16.158.23.6,会出现什么现象呢?

    不会出现任何现象,就是包发不出去呗。为什么发不出去呢?我来举例说明。
    192.168.1.6 就在你这台机器的旁边,甚至是在同一个交换机上。而你把自己机器的地址设为了 16.158.23.6 再企图去 ping192.168.1.6,你觉得只要将包发出去,同一个交换机的另一台机器马上就能收到,对不对?

    可是 Linux 系统不是这样的,你用肉眼看到那台机器就在旁边,它则需要根据自己的逻辑进行处理。在网络初步blog中说过只要是在网络上跑的包,都是完整的,可以有下层没上层,绝对不可能有上层没下层。

    再看我们有自己的源 IP 地址 16.158.23.6,也有目标 IP 地址 192.168.1.6,但是包发不出去,这是因为 MAC 层还没填。自己的 MAC 地址自己知道,这个容易。但是目标 MAC 填什么呢?是不是填 192.168.1.6 这台机器的 MAC 地址呢?

    当然不是。Linux 首先会判断,要去的这个地址和我是一个网段的吗,或者和我的一个网卡是同一网段的吗?只有是一个网段的,它才会发送 ARP 请求,获取 MAC 地址。如果发现不是呢?Linux 默认的逻辑是,如果这是一个跨网段的调用,它便不会直接将包发送到网络上,而是企图将包发送到网关。如果你配置了网关的话,Linux 会获取网关的 MAC 地址,然后将包发出去。对于 192.168.1.6 这台机器来讲,虽然路过它家门的这个包,目标 IP 是它,但是无奈 MAC 地址不是它的,所以它的网卡是不会把包收进去的。如果没有配置网关呢?那包压根就发不出去。

    如果将网关配置为 192.168.1.6 呢?不可能,Linux 不会让你配置成功的,因为网关要和当前的网络至少一个网卡是同一个网段的,怎么可能 16.158.23.6 的网关是 192.168.1.6 呢?

    所以,当你需要手动配置一台机器的网络 IP 时,一定要好好问问你的网络管理员。如果在机房里面,要去网络管理员那里申请,让他给你分配一段正确的 IP 地址。当然,真正配置的时候,一定不是直接用命令配置的,而是放在一个配置文件里面。不同系统的配置文件格式不同,但是无非就是 CIDR、子网掩码、广播地址和网关地址。

    动态主机配置协议 (DHCP)

    从上面可以看出配置了 IP 后一般不能变,配置一个服务端的机器还可以,但是客户端的机器呢?我抱着一台笔记本电脑在公司里走来走去,或者白天来晚上走,每次使用都要配置 IP 地址,那可怎么办?还有人事、行政等非技术人员,如果公司所有的电脑都需要 IT 人员配置,肯定忙不过来啊。

    因此需要一个自动配置的协议,动态主机配置协议 (Dynamic Host Configuration Protocol)简称 DHCP。

    有了这个协议,网络管理员就轻松多了。他们只需要配置一段共享的 IP 地址。每一台新接入的机器都通过 DHCP 协议,来这个共享的 IP 地址里申请,然后自动配置好就行。等人走了或者用完再还回去,这样其他机器也能用。

    所以说,如果是数据中心里面的服务器,IP 一旦配置好,基本不会变,相当于买房自己装修。DHCP 的方式相当于租房。一切配置好,你暂用完事了退租。

    解析 DHCP 的工作方式

    当一台机器新加入一个网络的时候,肯定一脸懵,啥情况都不知道,只知道自己的 MAC 地址。怎么办?先吼一句,我来啦,有人吗?这时候的沟通基本靠“吼”。这一步,我们称为DHCP Discover。

    新来的机器使用 IP 地址 0.0.0.0 发送了一个广播包,目的 IP 地址为 255.255.255.255。广播包封装在 UDP 里面,UDP 封装在 BOOTP 里面。其实 DHCP 是 BOOTP 的增强版,但是如果你去抓包的话,很可能看到的名称还是 BOOTP 协议。

    在这个广播包里面,新人大声喊:我是新来的(Boot request),我的 MAC 地址是这个,我
    还没有 IP,谁能给租给我个 IP 地址!格式就像这样:
    在这里插入图片描述
    如果一个网络管理员在网络里面配置了DHCP Server的话,他就相当于这些 IP 的管理员。他立刻能知道来了一个“新人”。这个时候,我们可以体会 MAC 地址唯一的重要性了。当一台机器带着自己的 MAC 地址加入一个网络的时候,MAC 是它唯一的身份,如果连这个都重复了,就没办法配置了。

    只有 MAC 唯一,IP 管理员才能知道这是一个新人,需要租给它一个 IP 地址,这个过程我们称为DHCP Offer。同时,DHCP Server 为此客户保留为它提供的 IP 地址,从而不会为其他
    DHCP 客户分配此 IP 地址。DHCP Offer 的格式就像这样,里面有给新人分配的地址。
    在这里插入图片描述
    DHCP Server 仍然使用广播地址作为目的地址,因为,此时请求分配 IP 的新人还没有自己的
    IP。DHCP Server 回复说,我分配了一个可用的 IP 给你,你看如何?除此之外,服务器还发送了子网掩码、网关和 IP 地址租用期等信息。

    新来的机器很开心,它的“吼”得到了回复,并且有人愿意租给它一个 IP 地址了,这意味着它
    可以在网络上立足了。当然更令人开心的是,如果有多个 DHCP Server,这台新机器会收到多个 IP 地址,简直受宠若惊。

    它会选择其中一个 DHCP Offer,一般是最先到达的那个,并且会向网络发送一个 DHCP
    Request 广播数据包,包中包含客户端的 MAC 地址、接受的租约中的 IP 地址、提供此租约的DHCP 服务器地址等,并告诉所有 DHCP Server 它将接受哪一台服务器提供的 IP 地址,告诉其他 DHCP 服务器,谢谢你们的接纳,并请求撤销它们提供的 IP 地址,以便提供给下一个 IP租用请求者。
    在这里插入图片描述
    此时,由于还没有得到 DHCP Server 的最后确认,客户端仍然使用 0.0.0.0 为源 IP 地址、
    255.255.255.255 为目标地址进行广播。在 BOOTP 里面,接受某个 DHCP Server 的分配的
    IP。

    当 DHCP Server 接收到客户机的 DHCP request 之后,会广播返回给客户机一个 DHCP ACK消息包,表明已经接受客户机的选择,并将这一 IP 地址的合法租用信息和其他的配置信息都放入该广播包,发给客户机,欢迎它加入网络大家庭。
    在这里插入图片描述
    最终租约达成的时候,还是需要广播一下,让大家都知道。

    展开全文
  • 考试中都会给定一个IP地址和对应的子网掩码,让你计算  1、子网数目  2、网络号  3、主机号  4、广播地址  5、可用IP地址范围 综合实例:  已知172.31.128.255/18,试计算:  1、子网数目,  2、...

    考试中都会给定一个IP地址和对应的子网掩码,让你计算

      1、子网数目

      2、网络号

      3、主机号

      4、广播地址

      5、可用IP地址范围

    综合实例:

      已知172.31.128.255/18,试计算:

      1、子网数目,

      2、网络号,

      3、主机号,

      4、广播地址,

      5、可分配IP的起止范围

      解:

      1、算子网数目

      首先将/18换成为我们习惯的表示法:

      11111111.11111111.11000000.000000转为十进制就是255.255.192.0,可以看到这个掩码的左边两节和B类默认掩码是一致的,所以这个掩码是在B类默认掩码的范围内,意味着我们将对B类大网进行子网划分。B类掩码默类是用16位(16个0)来表示可分配的IP 地址,本题中的掩码在B类默认掩码的基础上多出了两个表示网络号的1,这就是说是将B类大网划分为(11)2进制个子网,将(11)2进制转换为十进制就是4,所以本题中是将B类大网划分为4个子网。

      2、算网络号

      用公式:将IP地址的二进制和子网掩码的二进制进行“与”(and)运算,得到的结果就是网络号。“与运算”的规则是1和1得1,0和1得0,1和0得0。

      172.31.128.255转为二进制是10101100.00011111.10000000.11111111,掩码是:11111111.11111111.11000000.00000000

      所以:

      10101100.00011111.10000000.11111111

      11111111.11111111.11000000.00000000

      10101100.00011111.10000000.00000000

      将10101100.00011111.10000000.00000000

      转换为十进制就是172.31.128.0,所以网络号是172.31.128.0

      3、算主机号

      也用公式:用IP地址的二进制和(子网掩码的二进制的反码)进行“与”运算,得到的结果就是主机号。反码就是将原本是0的变为1,原本是1的变为0。由于掩码是11111111.11111111.11000000.00000000

      所以其反码表示为00000000.00000000.00111111.11111111,再将IP地址的二进制和掩码的反码表示法进行“与”运算:


      10101100.00011111.10000000.11111111

      00000000.00000000.00111111.11111111

      00000000.00000000.00000000.11111111

      将00000000.00000000.00000000.11111111

      转换为十进制是0.0.0.255,我们将左边的0去掉,只留右边的数字,所以我们说这个IP的主机号是255。主机号是表示网络号再加上255就是这个IP地址了。

      4、算广播地址

      也用公式:在得到网络号的基础上,将网络号右边的表示IP地址的主机部分的二进制位全部填上1,再将得到的二进制数转换为十进制数就可以得到广播地址。因为本题中子网掩码是11111111.11111111.11000000.00000000,网络号占了18位,所以本题中表示IP地址的主机部分的二进制位是14位,我们将网络号172.31.128.0,转换为二进制是 10101100.00011111.10000000.00000000,然后从右边数起,将14个0全部替换为1,即:10101100.00011111.10111111.11111111,这就是这个子网的广播地址的二进制表示法。将这个二进制广播地址转换为十进制就是172.31.191.255

      5、算可用IP地址范围

      因为网络号是172.31.128.0,广播地址是172.31.191.255,所以子网中可用的IP地址范围就是从网络号+1 到广播地址-1,所以子网中的可用IP地址范围就是从172.31.128.1-172.31.191.254。

    相关介绍  

    首先,不要管这个IP是A类还是B类还是C类,IP是哪一类对于解题是没有任何意义的,因为在很多题中B类掩码和A类或是C类网络一起出现,不要把这认为是一个错误,很多时候都是这样出题的。

      其次,应该掌握以下一些知识:

      1、明确“子网”的函义:

      这个小网就叫做这个大网的子网。大网可以是A类大网(A类网络),也可以是B类大网,还可能是C类大网。

      ⑴、二进制数转为十进制

      比方说在不牵涉到IP地址的计算时,将二进制的111转换为十进制,采用的方法是(2的2次方+2的1次方+2的0次方,即4+2+1),得到的结果是十进制的7。但是在计算IP地址时的的二进制到十进制的转换就不能采用这种方式了,二进制的111转换为十进制时,看到有几个“1”,就表示为2的几次方,这里有三个“1”,就是2的3次方,即在计算IP地址时,二进制的111转换为十进制就是2的3次方,2的3次方的结果是8。)

      ⑵、网络的总个数和可用个数

      A类网络的个数有2的7次方个,即128个。根据网络规范的规定,应该再去除128个中的第一个和最后一个,那么可用的A类网络的个数是126个。

      B类网络的个数有2的14次方个,即16384个。根据网络规范的规定,应该再去除16384个中的第一个和最后一个,那么可用的B类网络的个数是16382个。

      C类网络的个数有2的21次方个,即2097152个。根据网络规范的规定,应该再去除16384个中的第一个和最后一个,那么可用的C类网络的个数是2097150个。

    ⑶、网络的总IP数和可用IP地址数

      每个A类大网(A类网络)中容纳2的24次方个IP地址,即16777216个IP地址;每个B类大网中容纳着2的16次方个IP地址,即65536 个IP地址;每个C类大网中容纳着2的8次方个IP地址,即256个IP地址。可用的IP地址数是在总IP地址数的基础上减2得到。

      如果把一个B类大网划分为32个小网,那么每个小网的IP地址数目就是65536/32=2048;如果把C类大网划分为32个小网,那么每个小网的IP地址数目就是256/32=8。

      2、明确“掩码”的函义:

      掩码的作用就是用来告诉电脑把“大网”划分为多少个“小网”! 好多书上说,掩码是用来确定IP地址所在的网络号,用来判断另一个IP是不是与当前IP在同一个子网中。这也对,但是对于我们做题来说,意义不大。我们要明确:掩码的作用就是用来告诉电脑把“大网”划分为多少个“小网”! 掩码是用来确定子网数目的依据!

      3、明确十进制数与8位二进制数的转换

      做这类题要能够在心中将255以内的十进制数转换为对应的二进制数。可以参考这个公式表(第一行是二进制,第二行是十进制):

      1    1   1   1   1   1   1   1

      128   64   32   16   8   4   2   1

      可以看到:

      第一行左起第一个二进制1对应十进制的128

      第一行左起第二个1对应十进制的64......依次类推。

      上面这些关系要牢记,这是进制转换的基础!

      比方说将十进制的133转为二进制,可以这样想:因为133和128比较近,又由于公式表中左起第一个二进制1表示128,所以可以马上将待转换成8 位二进制的最左边的一位确定下来,定为1。再接下来,看到133和128只相差5,而5是4与1的和,而4与1分别对应公式表中的左起第6和第8位,所以十进制的133转换为8位二进制表示就是10000101,对应如下:  

    1    0   0   0   0   1   0   1 (二进制表示的133)

      128   0   0   0   0   4   0   1 (十进制表示的133)

      其它255以内的十进制数转换为8位二进制数的方法依此类推。

      4、牢记各类网络的默认掩码

      A类网络的默认掩码是255.0.0.0,换算成二进制就是 11111111.00000000.00000000.00000000;默认掩码意味着没有将A类大网(A类网络)再划分为若干个小网。掩码中的1表示网络号,24个0表示在网络号确定的情况下(用二进制表示的IP地址的左边8位固定不变),用24位二进制数来表示IP地址的主机号部分。(IP地址是由网络号+主机号两部分构成)

      B类网络的默认掩码是255.255.0.0,换算成二进制就是 11111111.11111111.00000000.00000000;默认掩码意味着没有将B类大网再划分为若干个小网。16个0表示在网络号确定的情况下(用二进制表示的IP地址的左边16位固定不变)可以用16位二进制数来表示IP地址的主机号部分。(可以把B类默认掩码理解为是将A类大网(A 类网络)划分为2的8次方(即256)个小网)

      C类网络的默认掩码是255.255.255.0,换算成二进制就是 11111111.11111111.11111111.00000000;默认掩码意味着没有将C类大网再划分为若干个小网。这里的8个0表示在网络号确定的情况下(用二进制表示的IP地址的左边24位固定不变),可以用8位二进制数来表示IP地址的主机部分。(可以把C类默认掩码理解为是将A类大网 (A类网络)划分为2的16次方(即65536)个小网,是将B类大网划分为2的8次方(即256)个小网)

      5、关于正确有效的掩码:

      正确有效的掩码应该满足一定的条件,即把十进制掩码换算成二进制后,掩码的左边部分一定要是全为1且中间不能有0出现。比方说将255.255.248.0转为二进制是 11111111.11111111.11111000.00000000,可以看到左边都是1,在1的中间没有0出现(0都在1的右边),这样就是一个有效的掩码。我们再来看254.255.248.0,转成二进制是 11111110.11111111.11111000.00000000,这不是一个正确有效的掩码,因为在1中间有一个0的存在。

    6、关于子网掩码的另类表示法:

      有些题目中不是出现如255.255.248.0这样的子网掩码,而是出现 IP地址/数字这样的形式,这里的/数字就是子网掩码的另类表示法。我们将255.255.248.0转为二进制的形式是 11111111.11111111.11111000.00000000,可以看到左边是有21个1,所以我们可以将255.255.248.0这个掩码表示为/21。

      7、网络中有两个IP地址不可用:

      不管是A类还是B类还是C类网络,在不划分子网的情况下,有两个IP地址不可用:网络号和广播地址。比如在一个没有划分子网的C类大网中用 202.203.34.0来表示网络号,用202.203.34.255来表示广播地址,因为C类大网的IP地址有256个,现在减去这两个IP地址,那么可用的IP地址就只剩下256-2=254个了。如果题目问:把一个C类大网划分为4个子网,会增加多少个不可用的IP地址?可以这样想:在C类大网不划分子网时,有两个IP地址不可用;现在将C类大网划分为4个子网,那么每个子网中都有2个IP地址不可用,所以4个子网中就有8个IP地址不可用,用8 个IP地址减去没划分子网时的那两个不可用的IP地址,得到结果为6个。所以在将C类大网划分为4个子网后,将会多出6个不可用的IP地址。

      8、根据掩码来确定子网的数目

      首先看题中给出的掩码是属于哪个默认掩码的“范围”内,这样我们就可以知道是对A类还是B类还是C类大网来划分子网。比方说 202.117.12.36/30,我们先把/30这种另类的掩码表示法转换为我们习惯的表示法: 11111111.11111111.11111111.11111100,转为十进制是255.255.255.252。我们可以看到,这个掩码的左边三节与C类默认掩码相同,只有第四节与C类默认掩码不同,所以我们认为255.255.255.252这个掩码是在C类默认掩码的范围之内的,意味着我们将对C类网络进行子网划分。因为C类网络的默认掩码是255.255.255.0,将C类默认掩码转换为二进制是 11111111.11111111.11111111.00000000,这里的8个0表示可以用8位二进制数来表示IP地址,也就是说C类大网中可有 2的8次方个IP地址,也就是256个IP地址。这道题中的掩码的最后一节是252,转换为二进制是11111100,因为1表示网络号,所以 111111就表示将C类大网划分为(111111)2进制个子网。将111111转换为十进制是64,所以就表示将C类大网划分为64个子网,每个子网的IP地址数目是256/64=4,去除子网中的第一个表示子网号的IP地址和最后一个表示广播地址的IP地址,子网中的可分配的IP地址数目就是子网中的总的IP地址数目再减去2,也就是4-2=2个。  


    展开全文
  • C:合法IP地址

    万次阅读 2019-01-20 10:25:34
    IP地址IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。 IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a, b, c, d都是0~255...
  • 背景知识 在设置电脑IP时,会碰到两个重要的参数,一个是IP地址,一个是子网掩码。IP地址是互联网上每个子网或每个主机在网络上的唯一身份标签,那子网掩码是干什么用的呢? 随着互联网的发展,越来越多的网络产...
  • 合法IP

    2018-03-31 15:39:57
    题目描述现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无...输入描述:输入一个ip地址输出描述:返回判断的结果YES or NO思路:合法ip是数字....
  • 校验是否是合法IP ''' def checkip(ipaddr): #1.检查IP地址是否为空 if ipaddr ==None: print('非法IP!IP不允许为空,请检查') return #2.检查IP地址是否长度合理 if len(ipaddr) < 7 or len(ipaddr) >...
  • 判断IP是否合法

    千次阅读 2017-04-27 10:31:23
    对于DNS来说,本地需要向DNS服务器发送查询的请求,然后服务器根据一系列的操作,返回对应的IP地址,为了提高效率,通常本地会缓存一些主机名与IP地址的映射,这样访问相同的地址,就不需要重复发送DNS请求了。...
  • A类地址:1个字节的网络号,3个字节的主机号,用于少量的大型网络; B类地址:2个字节的网络号,2个字节的主机号,用于中等规模的网络; C类地址:3个字节的网络号,1个字节的主机号,用于小规模的网络。 A类地址 ...
  • 文章目录需求场景解决方案...这时,我们需要将IP地址进行一定的格式转换,将其转换为主机名(hostname)或者系统名(application/service name)。 以WAF的日志为例,里面的dst_ip记录了被攻击的主机ip,scr_ip记录...
  • 判断IP地址是否有效

    千次阅读 2015-07-07 23:45:30
    IP的有效值是1.0.0.1~255.255.255.255,写个程序,参数是一个char*的IP,返回这个IP是否有效。 // IPcheck.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include using namespace std; //IP的...
  • 检测IP参考地址_正则表达式 检测IP_正则表达式办法 1,检测IP算法,接口说明也如下图。 /* *brief *param: the ip address *return value: if susscess,0 is returned,or 1 is returned on error. */ int ...
  • IP地址划分

    千次阅读 2017-08-27 21:21:29
    1 . 基本知识介绍 1.1网络中的每一个主机或路由器至少有一个IP地址; 在Internet中不允许有两个设备具有同样的IP地址; 1.2IP地址采用分层结构; IP地址是由网络号...IP地址=网络地址+子网地址+主机地址
  • IP地址合法性和网络类别检查

    千次阅读 2018-07-06 21:23:31
    题目描述IP地址就是给每个连接在互联网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位的标识符。“分类的IP地址”就是将IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成...
  • IP地址和子网掩码的关系, 如何计算网络地址

    万次阅读 多人点赞 2019-05-17 15:13:29
    IP地址=网络地址+主机地址,(又称:主机号和网络号组成)ip地址的结构使我们可以在Internet上很方便的寻址。ip地址通常用更直观的,以圆点分隔号的四个十进制数字表示,每个数字从0到255,如某一台主机的ip地址为:...
  • 根据子网掩码判断网段有效的IP地址

    千次阅读 2017-07-26 18:13:46
    之前在牛客网上看到一道关于TCP/IP的题目,当时不是很理解子网掩码的机制没有做出来。...下列选项中,属于"10.174.20.176/28"该网段的有效IP地址是: A 10.174.20.174 B 10.174.20.186 C 10.174.20.191 D 10.174.20
  • 1231: IP地址合法性 时间限制: 1 Sec 内存限制: 128 MB 提交: 4 解决: 3 ...IP地址IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地
  • 关于IP网络号和主机号的原理

    万次阅读 多人点赞 2017-06-20 16:09:39
    网络号和主机号具体怎么弄出来的? ? ? ?   ...1、标准分类的ip地址的网络号是,  ...如172.16.10.2,因为172.16.10.2是B类地址,所以172.16所代表的位就是网络号的位,...2、如果不是标准的ip地址,就是要划子网的,
  • IP地址的分配原理

    万次阅读 多人点赞 2017-06-04 15:54:14
    网络模型介绍 在计算机网络中有著名的OSI七层协议体系结构,概念清楚,理论完整,但是它既复杂又不...最终结合OSI和TCP/IP的优点,采用了一种只有五层协议的体系结构,本文的讲述的IP都是基于五层协议模型中的网络层。
  • 如何判断自己IP是内网IP还是外网IP

    千次阅读 2017-05-04 21:00:46
     tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下: 10.0.0.0/8:10.0.0.0~10.255.255.255   172.16.0.0/12:172.16.0.0~172.31.255.255   192.168.0.0/16:192.168.0.0~192.168....
  • //判断任意两台计算机的IP地址是否属于同一子网络 子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。 子网掩码与IP地址结构相同,是32位二进制数,其中网络号部分全为“1”和主机号部分全为“0...
  • IP地址的规划和设计方法(二)

    千次阅读 2015-08-01 08:55:13
    五,IP地址规划方法  (1)IP地址规划的基本步骤 ... a)判断用户对网络与主机数的需求;  b)计算满足用户需求的基本网络地址结构;  c)计算地址掩码;  d)计算网络地址;  e)计算网络广播地址;  

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,681
精华内容 9,472
关键字:

如何判断合法的ip主机地址