IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 实现对IP去重并统计A、B、C段的个数 -> 正文阅读

[开发工具]实现对IP去重并统计A、B、C段的个数

1.程序制作原因:

? ? ? ? 需要对IP文件进行IP去重和A、B、C段统计

2.最终效果图:

????????

3.完整代码如下(count_A_B_C.py):?

import os
import PySimpleGUI as sg


def count_d(iplist):
    # print(iplist)
    iplist = set(iplist)
    # print(iplist)
    return len(iplist)


def count_c(iplist):
    # print(iplist)
    c_list = []
    for ip in iplist:
        ip_arry = ip.split('.')
        # print(ip_arry)
        ip = '%s.%s.%s' % (ip_arry[0], ip_arry[1], ip_arry[2])
        # print(ip)
        c_list.append(ip)
    # print(c_list)
    c_list = set(c_list)
    # print(c_list)

    return len(c_list)


def count_b(iplist):
    # print(iplist)
    b_list = []
    for ip in iplist:
        ip_arry = ip.split('.')
        # print(ip_arry)
        ip = '%s.%s' % (ip_arry[0], ip_arry[1])
        # print(ip)
        b_list.append(ip)
    # print(b_list)
    b_list = set(b_list)
    # print(b_list)

    return len(b_list)


def count_a(iplist):
    pass
    # print(iplist)
    a_list = []
    for ip in iplist:
        ip_arry = ip.split('.')
        # print(ip_arry)
        ip = '%s' % (ip_arry[0])
        # print(ip)
        a_list.append(ip)
    # print(a_list)
    a_list = set(a_list)
    # print(a_list)

    return len(a_list)


def read_iplist():
    iplist = []
    dir = os.getcwd()
    dir = os.path.join(dir, "ip_result.txt")

    if os.path.isfile(dir):
        with open(dir, 'r') as f:
            line = f.readline()
            while line:
                line = line.strip('\n')
                if line:
                    iplist.append(line)

                line = f.readline()
                if not line:
                    break
        #     iplist = f.readlines()
        # print(iplist)
    else:
        result = '当前目录不存在ip_result.txt文件,请创建后运行'
        sg.popup_scrolled(result, title="错误信息")
        exit()
    return iplist


if __name__ == '__main__':
    iplist = read_iplist()

    ip_d = count_d(iplist)
    # print(ip_d)

    ip_c = count_c(iplist)
    # print(ip_c)

    ip_b = count_b(iplist)
    # print(ip_b)

    ip_a = count_a(iplist)
    # print(ip_a)

    # print('A段:%s B段:%s C段:%s D段:%s' %(ip_a,ip_b,ip_c,ip_d))
    result = 'A段:%s  B段:%s  C段:%s  D段:%s' % (ip_a, ip_b, ip_c, ip_d)
    sg.popup_scrolled(result, title="IP统计结果")
    # read_iplist()

4.程序打包成exe:

(venv) D:\work\venv\Scripts>pyinstaller.exe -Fw D:\work\count_A_B_C.py

5.程序运行注意事项:

? ? ? ? ①ip_result.txt文件需要跟打包成的exe文件放在同一目录下

? ? ? ? ②ip_result.txt文件中ip一行一个

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 00:01:48  更:2021-09-11 00:02:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 4:51:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码