• IP地址和子网掩码


    A分类IP住址 在第一个领域值规模:0-127  默认子网掩码:255.0.0.0

    B分类IP就拿地址的第一个字段值范围:128-191  默认的子网掩码255.255.0.0

    C类IP地址的第一个字段的取值范围:192-223  默认的子网掩码  255.255.255.0

    已知IP地址和子网掩码,用IP地址和子网掩码相与就可以得到网络号

    子网掩码的最后面有几个零。比方n个,就可以求出主机数:pow(2,n)-2  (全零用于网络地址,全1用于广播地址)

    子网掩码中1的个数能够用于求子网的数目

    比方IP地址为151.244.20.34 子网掩码为255.255.255.224,这个IP是B类IP,两者相与,

    网络号为151.244.20.32

    224用二进制表示为11100000,后面有5个0,则主机数为pow(2,5)-2,当中全0用作网络地址,全1为广播地址

    16-5=11,则子网数目为pow(2,11)-2  当中全0用作网络地址。全1为换回測试用

     以下的python程序能够推断IP的类别并求相应的网络号:

    s=raw_input();
    s=s.split(".");
    mask=raw_input();
    mask=mask.split(".");
    for i in range(0,4):
    	s[i]=int(s[i]);
    	mask[i]=int(mask[i]);
    if(s[0]>=0 and s[0]<=127):
    	print "A IP";
    	flag=1;
    elif(s[0]<=192):
    	print "B IP";
    	flag=2;
    elif(s[0]<=223):
    	print  "C IP";
    	flag=3;
    elif(s[0]>255):
    	print "error";
    if(flag is 1):
    	i=0;
    	res=[];
    	for i in range(0,4):
    		res.append(mask[i]&s[i]);
    	print "network number is %d.%d.%d.%d" %(res[0],res[1],res[2],res[3]);
    if(flag is 2):
    	res=[];
    	for i in range(0,4):
    		res.append(mask[i]&s[i]);
    	print "network number is %d.%d.%d.%d" %(res[0],res[1],res[2],res[3]);
    	
    if(flag is 3):
    	res=[];
    	for i in range(0,4):
    		res.append(mask[i]&s[i]);
    	print "network number is %d.%d.%d.%d" %(res[0],res[1],res[2],res[3]);
    


    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    sql server 查询最近备份记录
    如何手动卸载 SQL Server
    Microsoft SQL Server 2012 Versions
    SQLNET and TCP Keepalive Settings
    SQLSERVER的备份信息查询
    How to get the DDL for indexes using dbms_metadata
    用于确定 SQL Server recovery何时完成的脚本
    SQLSERVER备份命令总结
    SQL Server 备份和还原的如何使网络驱动器
    这工具,这翻译,看来软件还是不够智能啊
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4807615.html
Copyright © 2020-2023  润新知