华为机考入门python3--(18)牛客18- 识别有效的IP地址和掩码并进行分类统计

分类:字符串

知识点:

  1. 字符串是否由数字组成     my_str.isdigit()

  2. 字符串填充    不足8位左侧填充0    my_str.zfill(8)

题目来自【牛客】

图片

 

import sys
def classify_ip(ip_mask):  

    ip_class, is_private_ip, mask_class = 'ignore_ip', 0, 'valid_mask'

    # 解析IP地址和子网掩码  
    ip, mask = ip_mask.split('~')  
    ip_parts = ip.split('.')  
    mask_parts = mask.split('.')
      
    # 验证IP地址是否合法  
    if len(ip_parts) != 4:  
        ip_class = 'error_ip'  
    for part in ip_parts:  
        if not part.isdigit() or int(part) < 0 or int(part) > 255:  
            ip_class = 'error_ip'  
      
    # 验证子网掩码是否合法  
    if len(mask_parts) != 4:  
        mask_class = 'error_mask'  
    for part in mask_parts:  
        if not part.isdigit() or int(part) < 0 or int(part) > 255:  
            mask_class = 'error_mask'  
    # zfill() 是字符串(str)对象的一个方法,用于在字符串的左侧填充零zero,直到字符串达到指定的长度。
    mask_binary = ''.join([bin(int(part))[2:].zfill(8) for part in mask_parts])
    # rfind() 是 Python 中字符串(str)对象的一个方法,用于在字符串中从右向左查找子字符串,
    # 并返回子字符串的最后一个匹配的索引。如果找不到子字符串,则返回 -1。
    # print(mask_binary)
    if '01' in mask_binary or mask_binary.count('1') == 0 or mask_binary.count('0') == 0:
        mask_class = 'error_mask'
      
    # IP地址分类  
    if ip_class != 'error_ip':
        # 判断是否为私有IP
        if int(ip_parts[0]) == 10 or (int(ip_parts[0]) == 172 and 16 <= int(ip_parts[1]) <= 31):
            is_private_ip = 1
        # 判断IP地址所属的类别
        if 1 <= int(ip_parts[0]) <= 126:
            ip_class = 'A'
        elif 128 <= int(ip_parts[0]) <= 191:
            ip_class=  'B'
        elif 192 <= int(ip_parts[0]) <= 223:
            ip_class = 'C'
        elif 224 <= int(ip_parts[0]) <= 239:
            ip_class = 'D'
        elif 240 <= int(ip_parts[0]) <= 255:
            ip_class = 'E'
        else:
            ip_class = 'ignore_ip'

    return ip_class, is_private_ip, mask_class
    
  
count = {'A': 0, 'B': 0, 'C': 0, 'D': 0, 'E': 0, 'error_ip': 0, 'error_mask': 0, 'private': 0, 'ignore_ip': 0}
for line in sys.stdin:
    ip_mask = line.strip()
    # print(ip_mask)
    ip_class, is_private_ip, mask_class = classify_ip(ip_mask)
    # print(ip_class, is_private_ip, mask_class)

    if ip_class == 'ignore_ip':
        count['ignore_ip'] += 1
    elif ip_class == 'error_ip':
        count['error_ip'] += 1
    elif mask_class == 'error_mask':
        count['error_mask'] += 1
    else:
        count[ip_class] += 1
        if is_private_ip == 1:
            count['private'] += 1

print(count['A'], count['B'], count['C'], count['D'], count['E'], count['error_ip'] + count['error_mask'], count['private'])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/570356.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

值传递和地址传递

文章目录 目录值传递地址传递 目录 值传递 package com.zhang.parameter; //值传递 public class MethodDemo1 {public static void main(String[] args) {int a 10;System.out.println(a);System.out.println("~~~~~~~~~~~~~~~");change(a);//无论你传入的是什么 …

基于AARRR模型的录音笔在电商平台进行推广的建议

基于AARRR模型&#xff0c;即Acquisition&#xff08;获取用户&#xff09;、Activation&#xff08;提高活跃度&#xff09;、Retention&#xff08;提高留存率&#xff09;、Revenue&#xff08;获取收入&#xff09;和Refer&#xff08;自传播&#xff09;&#xff0c;以下是…

深度学习发展中的继承和创新

深度学习是一步一步发展而来的&#xff0c;新的成就也是在原有的基础上&#xff0c;逐步取得突破&#xff0c;有一些东西是一点一点变化&#xff0c;突破发展而来的&#xff0c;也就是每一次小的突破和每一次小的突破累积起来&#xff0c;构成一个明显的进步。我们可以通过观察…

MAC用户福利:一站式电商客服工具下载地址大全揭秘!

列举和比较拼多多商家版,阿里卖家MAC版本&#xff0c;京麦工作台&#xff0c;聊天宝MAC版&#xff0c;千牛MAC版&#xff0c;抖店MAC版各种适用于MAC系统的电商客服工具&#xff0c;提供平台MAC版本的下载地址&#xff0c;帮助用户提高客服效率、改善客户体验&#xff0c;从而提…

滚动条详解:跨平台iOS、Android、小程序滚动条隐藏及自定义样式综合指南

滚动条是用户界面中的图形化组件&#xff0c;用于指示和控制内容区域的可滚动范围。当元素内容超出其视窗边界时&#xff0c;滚动条提供可视化线索&#xff0c;并允许用户通过鼠标滚轮、触屏滑动或直接拖动滑块来浏览未显示部分&#xff0c;实现内容的上下或左右滚动。它在保持…

私域运营的基础是什么?

私域运营是指在自有平台上进行的一系列运营活动&#xff0c;旨在建立和维护与用户的深度互动关系&#xff0c;提升用户忠诚度和品牌影响力。相比于传统的广告投放和推广方式&#xff0c;私域运营更加注重与用户的沟通和互动&#xff0c;通过提供有价值的内容和个性化的服务&…

2024年 团体程序设计天梯赛个人总结

前言&#xff1a; 这是一个悲伤的故事~ &#x1f3c6;题目传送门 ⭐L1一阶题⭐L1-097 编程解决一切&#xff08;5分&#xff09;⭐L1-098 再进去几个人&#xff08;5分&#xff09;⭐L1-099 帮助色盲&#xff08;10分&#xff09;⭐L1-100 四项全能&#xff08;10 分&#xff0…

权威解析Spring框架九大核心功能(续篇):专业深度,不容错过

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c…

kubernetes中的附件组件Metrics-server与hpa资源实现对pod的自动扩容和缩容

一、概述 Metrics-Server组件目的&#xff1a;获取集群中pod、节点等负载信息&#xff1b; hpa资源目的&#xff1a;通过metrics-server获取的pod负载信息&#xff0c;自动伸缩创建pod&#xff1b; 二、安装部署 Metrics-Server组件 安装目的&#xff0c;就是给k8s集群安装top…

Python从0到100(十六):面向对象编程入门

前言&#xff1a; 零基础学Python&#xff1a;Python从0到100最新最全教程。 想做这件事情很久了&#xff0c;这次我更新了自己所写过的所有博客&#xff0c;汇集成了Python从0到100&#xff0c;共一百节课&#xff0c;帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

基于SSM的教务管理系统

功能模块 登录界面 管理员端 教师端 学生端 部分源码 //登录表单处理RequestMapping(value "/login", method {RequestMethod.POST})public String login(Userlogin userlogin) throws Exception {//Shiro实现登录UsernamePasswordToken token new UsernamePasswo…

F-47创建预付款请求

F-47创建预付款请求 需要删除 可以使用FB08 冲消即可

【SMART目标法】项目管理必会的思维分析工具 06

SMART分析方法&#xff0c;是让管理者的工作变被动为主动的一个很好的手段。实施目标管理不但是有利于员工更加明确高效地工作&#xff0c;更是为未来的绩效考核制定了目标和考核标准&#xff0c;使考核更加科学化、规范化&#xff0c;更能保证考核的公开、公平与公正。 “sma…

Java调用ffmpeg把rtsp视频流保存为MP4文件,并播放

前言:最近项目需要把rtsp的视频流截取保存为MP4文件。经过多方调研,最终找到方案:调用ffmpeg命令行完成转码。ffmpeg命令行确实稳定靠谱!ok,下面就开始分享代码。 1、环境工具准备 ffmpeg的程序和一个稳定的rtsp流 这是我的ffmpeg的版本。 我这里rtsp流用的海康硬盘录里…

制造业工厂数字化转型的具体方法

制造业工厂数字化转型是指将传统的制造业生产过程和管理方式应用数字技术进行改造和升级&#xff0c;以提高生产效率、降低成本、优化产品质量和提升企业竞争力。 制造业数字化转型基本概念&#xff1a; 1. 数字化生产&#xff1a;将传统工艺流程数字化&#xff0c;通过自动化设…

【Linux】:epoll

高级IO 一.各种接口二.工作模式 按照man手册的说法: 是为处理大批量句柄而作了改进的poll. 一.各种接口 快速认识接口&#xff1a; events可以是以下几个宏的集合&#xff1a; EPOLLIN : 表示对应的文件描述符可以读 (包括对端SOCKET正常关闭); EPOLLOUT : 表示对应的文件描…

智慧灯杆综合管理平台建设思路及系统方案设计

一、建设思路 智慧灯杆综合管理平台的建设旨在实现城市基础设施的智能化、信息化和高效化。在构建这一平台时&#xff0c;我们首先要明确其核心理念&#xff1a;以灯杆为载体&#xff0c;整合各类城市服务资源&#xff0c;通过先进的物联网技术和大数据分析&#xff0c;为城市…

欧美助听器市场热门品牌盘点,国产爱可声备受青睐

近年来&#xff0c;随着中国技术的不断进步和品质的提升&#xff0c;国产助听器品牌爱可声在欧美市场备受瞩目。在欧美国家助听器市场&#xff0c;有许多热门品牌分别为&#xff1a;峰力、斯达克、瑞声达、爱可声等。这些品牌凭借其悠久的历史、先进的技术和高品质的产品&#…

Python3:强大的编程语言及其广泛应用

点击下载《Python3&#xff1a;强大的编程语言及其广泛应用》 1. 前言 Python3作为一种强大的编程语言&#xff0c;凭借其简洁易读、功能丰富以及强大的扩展性&#xff0c;已经成为编程界的热门选择。本文将详细介绍Python3的主要特性、应用领域以及它在实际项目中的优势&…

胖东来的商业启示!2024创业赛道!2024创业新项目新商机!2024创业风口!2024普通人的创业机会!2024创业赚钱项目!

在中国零售业&#xff0c;胖东来是“神”一般的存在&#xff0c;不讲业绩&#xff0c;只讲幸福&#xff0c;却造就了全国最具人效和坪效的零售门店&#xff0c;都说胖东来成功的核心秘诀是“把人当人”。 当然胖东来的成功可不是偶然&#xff0c;它背后是于东来多年来的坚持与努…