26:IPMaskCheck识别有效的ip地址和掩码并分类统计
题目描述
请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类。
所有的IP地址划分为 A,B,C,D,E五类
A类地址1.0.0.0~126.255.255.255;
B类地址128.0.0.0~191.255.255.255;
C类地址192.0.0.0~223.255.255.255;
D类地址224.0.0.0~239.255.255.255;
E类地址240.0.0.0~255.255.255.255
私网IP范围是:
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
子网掩码为前面是连续的1,然后全是0。(例如:255.255.255.32就是一个非法的掩码)
输入描述:多行字符串。每行一个IP地址和掩码,用~隔开。
输出描述:统计A、B、C、D、E、错误IP地址或错误掩码、私有IP的个数,之间以空格隔开。
输入例子:
10.70.44.68~255.254.255.0
1.0.0.1~255.0.0.0
192.168.0.2~255.255.255.0
19..0.~255.255.255.0
输出例子:
1 0 1 0 0 2 1
# 1. Mask 255.255.255.255 , 0.0.0.0 为非法。# 2. IP和Mask必须同时正确,才能被分类到A, B, C, D, E以及私有。# 3. IP和Mask同时错误时,只算一次错误# 4. 注意0.*.*.*以及127.*.*.*不属于任何类别。import java.util.Scanner; /*# 1. Mask 255.255.255.255 , 0.0.0.0 为非法。
# 2. IP和Mask必须同时正确,才能被分类到A, B, C, D, E以及私有。
# 3. IP和Mask同时错误时,只算一次错误
# 4. 注意0.*.*.*以及127.*.*.*不属于任何类别。
*/
/*题目描述
请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类。
所有的IP地址划分为 A,B,C,D,E五类
A类地址1.0.0.0~126.255.255.255;
B类地址128.0.0.0~191.255.255.255;
C类地址192.0.0.0~223.255.255.255;
D类地址224.0.0.0~239.255.255.255;
E类地址240.0.0.0~255.255.255.255
私网IP范围是:
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
子网掩码为前面是连续的1,然后全是0。(例如:255.255.255.32就是一个非法的掩码)
输入描述:多行字符串。每行一个IP地址和掩码,用~隔开。
输出描述:统计A、B、C、D、E、错误IP地址或错误掩码、私有IP的个数,之间以空格隔开。
输入例子:
10.70.44.68~255.254.255.0
1.0.0.1~255.0.0.0
192.168.0.2~255.255.255.0
19..0.~255.255.255.0
输出例子:
1 0 1 0 0 2 1*/
public class IPMaskCheck {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int a=0,b=0,c=0,d=0,e=0,f=0,g=0;
while(in.hasNextLine()){
int flag = 0;
String[] input = in.nextLine().split("~");
String[] ipString = input[0].split("\\.");
String[] maskString = input[1].split("\\.");
//MaskCheck
if(ipString.length!=4 || maskString.length!=4)
{
f++;
continue;
}
//IP Check
for(int i =0;i<4;i++)
{
if(Integer.parseInt(ipString[i]) <0 || Integer.parseInt(ipString[i])>255)
{
f++;
break;
}
}
int ip1 = Integer.parseInt(ipString[0]);
int ip2 = Integer.parseInt(ipString[1]);
if(ip1>=1 && ip1<=126)
{
a++;
if(ip1==10)g++;
}
else if(ip1>=128 && ip1<=191)
{
b++;
if(ip1==172 && ip2<=31 && ip2>=16)g++;
}
else if(ip1>=192 && ip1<=223)
{
c++;
if(ip1==192 && ip2==168)g++;
}
else if(ip1>=224 && ip1<=239)
{
d++;
}
else {
e++;//240-255
}
System.out.println(a+" "+b+" "+c+" "+d+" "+e+" "+f+" "+g);
}
}
}
26:IPMaskCheck识别有效的ip地址和掩码并分类统计的更多相关文章
- 识别有效的IP地址和掩码并进行分类统计
该题我的想法是把每一个ip看出一个整数,将读取得到的数据一一与给定的ip范围比较即可.另外本题应该注意的地方是scanf读取俩字符串的方法. 代码如下: #include<stdio.h> ...
- 识别有效的IP地址和掩码并进行分类统
#include<iostream> #include<stdio.h> #include<string.h> using namespace std; int c ...
- 算法 识别有效ip地址和掩码并做统计
题目描述 请解析IP地址和对应的掩码,进行分类识别.要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类. 所有的IP地址划分为 A,B,C,D,E五类 A类地址1.0.0.0~126.2 ...
- Python 输入IP地址及掩码告诉你该网段包含的全部地址(IPy模块练习)
IPy模块原本使用时需要输入正确的网络位和掩码,我利用处理报错的机制实现了输入任意IP地址和掩码均可正确输出结果的小程序. #!/usr/bin/env python # -*- coding: ut ...
- 设置ip地址、掩码、网关、DNS
@echo offcolor f8mode con cols=40 lines=8echo.echo.echo 设置IP为:echo.set /p ip= 192. ...
- 根据Ip地址与掩码 得出 子网地址与广播地址
由于给予条件优先,没有直接给出子网地址与广播地址.但是又需要这两个参数,需要我们使用ip 地址与 子网掩码得出子网地址与广播地址.思路如下: 1. 子网地址, ip地址与 子网掩码分别换算 ...
- IP地址分类与识别错误
//描述: 请解析IP地址和对应的掩码,进行分类识别.要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类. //所有的IP地址划分为 A,B,C,D,E五类 //A类地址1.0.0.0 ...
- MAC地址与IP地址的区别
介绍一下MAC地址的知识,MAC地址和IP地址的区别以及MAC地址在实际应用中所涉及到的安全问题. 一.基础知识 如今的网络是分层来实现的,就像是搭积木一样,先设计某个特定功能的模块,然后把模块拼起来 ...
- 【转载】IP地址和子网划分学习笔记之《子网掩码详解》
原文地址: https://blog.51cto.com/6930123/2112748 一.子网掩码 IP地址是以网络号和主机号来标示网络上的主机的,我们把网络号相同的主机称之为本地网络,网络号不相 ...
随机推荐
- HDU 5696 RMQ+滑窗
区间的价值 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Subm ...
- Twitter如何在数千台服务器上快速部署代码?
答案是:用BT,也就是你我应该都很熟悉的BitTorrent. 对于网站经营者.创业者来说,扩展性的问题是在网站流量成长过程中势必会面对的问题,如何建立一个具有扩展性的架构(scalable arch ...
- mac 安装 python 配置||虚拟环境
前篇:http://www.cnblogs.com/ostrich-sunshine/p/8747791.html 介绍了 Mac 下 python 的一些相关知识. 这篇介绍 python3 的安装 ...
- 合理使用webpack提高开发效率
虽然公司有提供现成的脚手架工具,但是作为开发人员懂得必要的相关知识还是很重要的.这样有利于提高我们的开发效率,优化我们的代码. 关于npm scripts 什么是npm scripts npm 允许在 ...
- 【07】node 之 Buffer
1.1. Buffer基本概念 JavaScript 语言自身只有字符串数据类型,没有二进制数据类型.二进制可以存储电脑中任何数据(比如:一段文本.一张图片.一个硬盘,应该说电脑中所有的数据都是二进 ...
- 【01】npm/cnpm安装
包安装相关信息: 1.node_modules文件夹 node_modules文件夹在nodejs中是一个特殊的文件夹,通过它的名字就可以看出,该文件夹也是用于存放node模块.如果一个模块表达式不是 ...
- Eat the Trees(hdu 1693)
题意:在n*m的矩阵中,有些格子有树,没有树的格子不能到达,找一条或多条回路,吃完所有的树,求有多少中方法. 第一道真正意义上的插头DP,可参考陈丹琦的<基于连通性状态压缩的动态规划问题> ...
- duilib入门简明教程 -- XML基础类(7) (转)
原文转自:http://www.cnblogs.com/Alberl/p/3343743.html 现在大家应该对XML描述界面不那么陌生了,那么我们做进一步介绍. 前面的教程我们写了很多代码,为的是 ...
- 【CDockablePane】关于CDockablePane
1.DockPane是CFrameWndEx框架窗口的函数,不能用于基于对话框的应用程序,也不能用于老版本VC,只能用于基于单文档和多文档的应用程序. 2.最佳变通实现办法:创建CFormView基类 ...
- yii框架美化访问路径,去掉index.php/?r=部分
一.找到配置文件(ps:advance高级模板) 在工程目录-> backend目录 或 frontend目录 -> config目录 -> main.php文件 -> 在 r ...