#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std; int countA=0;
int countB=0;
int countC=0;
int countD=0;
int countE=0;
int countError=0;
int countPrivate=0; void get(char *str)
{
int num = strlen(str); int i=0; unsigned int arr[8] = {0};
int counter = 0; int val = 0;
for(i=0; i<=num; i++)
{
if(str[i]>='0' && str[i]<='9')
{
val = val*10 + str[i] - '0';
}
else if(str[i]=='.' || str[i]=='~' || str[i]=='\0')
{
if(str[i-1]<'0' || str[i-1]>'9')
{
countError++;
return;
}
if(val>255)
{
countError++;
return;
}
if(counter>=8)
{
countError++;
return;
}
arr[counter++] = val;
val = 0;
}
else
{
return;
}
} unsigned int mask = (arr[4]<<24)+(arr[5]<<16)+(arr[6]<<8)+arr[7]; int tmpi;
for(tmpi=31; tmpi>=0 && (mask>>tmpi)%2==1; tmpi--);
if(mask>>(tmpi+1)<<(tmpi+1) != mask)
{
countError++;
return;
} if(arr[0]>=1 && arr[0]<=126)
{
countA++;
} if(arr[0]>=128 && arr[0]<=191)
{
countB++;
} if(arr[0]>=192 && arr[0]<=223)
{
countC++;
} if(arr[0]>=224 && arr[0]<=239)
{
countD++;
}
if(arr[0]>=240 && arr[0]<=255)
{
countE++;
} if(arr[0]==10)
{
countPrivate++;
} if(arr[0]==172 && (arr[1]>=16 && arr[1]<=31))
{
countPrivate++;
}
if(arr[0]==192 && arr[1]==168)
{
countPrivate++;
}
} int main()
{ char str[100]; while(cin>>str)
{
get(str);
} cout<<countA<<' '<<countB<<' '<<countC<<' '<<countD<<' '<<countE<<' '<<countError<<' '<<countPrivate; return 0;
}

  

识别有效的IP地址和掩码并进行分类统的更多相关文章

  1. 26:IPMaskCheck识别有效的ip地址和掩码并分类统计

    题目描述 请解析IP地址和对应的掩码,进行分类识别.要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类. 所有的IP地址划分为 A,B,C,D,E五类 A类地址1.0.0.0~126.2 ...

  2. 识别有效的IP地址和掩码并进行分类统计

    该题我的想法是把每一个ip看出一个整数,将读取得到的数据一一与给定的ip范围比较即可.另外本题应该注意的地方是scanf读取俩字符串的方法. 代码如下: #include<stdio.h> ...

  3. 算法 识别有效ip地址和掩码并做统计

    题目描述 请解析IP地址和对应的掩码,进行分类识别.要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类. 所有的IP地址划分为 A,B,C,D,E五类 A类地址1.0.0.0~126.2 ...

  4. Python 输入IP地址及掩码告诉你该网段包含的全部地址(IPy模块练习)

    IPy模块原本使用时需要输入正确的网络位和掩码,我利用处理报错的机制实现了输入任意IP地址和掩码均可正确输出结果的小程序. #!/usr/bin/env python # -*- coding: ut ...

  5. 设置ip地址、掩码、网关、DNS

    @echo offcolor f8mode con cols=40 lines=8echo.echo.echo      设置IP为:echo.set /p ip=              192. ...

  6. 根据Ip地址与掩码 得出 子网地址与广播地址

    由于给予条件优先,没有直接给出子网地址与广播地址.但是又需要这两个参数,需要我们使用ip 地址与 子网掩码得出子网地址与广播地址.思路如下:       1. 子网地址, ip地址与 子网掩码分别换算 ...

  7. IP地址分类与识别错误

    //描述:  请解析IP地址和对应的掩码,进行分类识别.要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类. //所有的IP地址划分为 A,B,C,D,E五类 //A类地址1.0.0.0 ...

  8. MAC地址与IP地址的区别

    介绍一下MAC地址的知识,MAC地址和IP地址的区别以及MAC地址在实际应用中所涉及到的安全问题. 一.基础知识 如今的网络是分层来实现的,就像是搭积木一样,先设计某个特定功能的模块,然后把模块拼起来 ...

  9. IP地址的分类与寻址

    IP地址:有一种标识符,被TCP/IP协议簇的IP层用来标识 连接到因特网的设备.IP协议的第4版IPv4地址是32位地址,是连接地址,定义了每一个连接到因特网上的设备(可以认为是主机的别名),而不是 ...

随机推荐

  1. OceanBase架构(二)

    http://www.cnblogs.com/LiJianBlog/p/4779990.html OceanBase架构浅析(二)   单点性能 OceanBase架构的优势在于既支持跨行跨表事务,又 ...

  2. 用soapUI生成客户端代码

    一.用soapUI生成客户端代码 方法一: 1.第一步,打开soapUI,菜单栏里的tools,选择apache CXF,如图, 2.第二步,WSDL:写上你连接服务端的地址,OutputDirect ...

  3. Netty5.x中新增和值得注意的点

    最近事情多,OneCoder折腾了好几天,总算翻译完成了. 翻译自官方文档:http://netty.io/wiki/new-and-noteworthy-in-5.x.html   该文档会列出在N ...

  4. 解决 Virtual Box 启动 Cannot load R0 module supLoadModule returned VERR_LDR_MISMATCH_NATIVE Failed to register ourselves as a PCI Bus (VERR_MODULE_NOT_FOUND)

    返回 代码:E_FAIL (0x80004005)组件:Console界面:IConsole {8ab7c520-2442-4b66-8d74-4ff1e195d2b6} 原因: 我新建了一个vdi文 ...

  5. oracle often commands

    还是这个好用   Oracle mysql 对比版本 Personal Oracle7 Release 7.3.4.0.0 mysql 3.23.58-nt 启动画面(点击放大) 默认安装目录 C:O ...

  6. Java tomcat启动失败(Servlet3.0 Web Project):A child container failed during start

    Tomcat启动失败,失败全部信息: 五月 , :: 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin 警告: [SetProper ...

  7. each(callback) 对于每个匹配的元素所要执行的函数

    以每一个匹配的元素作为上下文来执行一个函数. 意味着,每次执行传递进来的函数时,函数中的this关键字都指向一个不同的DOM元素(每次都是一个不同的匹配元素).而且,在每次执行函数时,都会给函数传递一 ...

  8. 【转】运行java -version命令时出现错误及解决

    转载地址:http://blog.sina.com.cn/s/blog_50f21fed01012sf2.html     按照上一篇的步骤配置JAVA_HOME.CLASSPATH和Path三个变量 ...

  9. easyui DataGrid 工具类之 列属性class

    public class ColumnVO { /**     * 列标题文本     */    private String title; /**     * 列字段名称     */    pr ...

  10. 2015弱校联盟(2) - J. Usoperanto

    J. Usoperanto Time Limit: 8000ms Memory Limit: 256000KB Usoperanto is an artificial spoken language ...