print("==========1==========")
from netaddr import IPNetwork # IPNetwork('192.168.7.80/30'), IPNetwork('192.168.7.84/30'), IPNetwork('192.168.7.88/30'), IPNetwork('192.168.7.92/30')
ip_str = "192.168.7.83/28"
# ip_str="192.168.7.92/30"
# ip_str = "192.168.1.130/32"
# ip_str = "192.168.34.92/255.255.255.248"
print(ip_str)
ip = IPNetwork(ip_str)
print(ip) # 子网掩码
print(ip.netmask)
# 广播地址
print(ip.broadcast)
# 网络地址
print(ip.network)
# 取反掩码
print(ip.hostmask)
# 同一网段ip总数
print(ip.size)
# 修改地址的掩码长度为28
ip.prefixlen = 28
print(ip) # 将同一网段的ip,再化为掩码长度为30的几个子网段
new_ips_list = [x for x in ip.subnet(30)]
print(new_ips_list) # # 获取某一网段的所有主机地址
for ip in IPNetwork(ip_str).iter_hosts():
print(ip) print("==========2==========")
# IPAddress的用法
from netaddr import IPAddress # 判断地址的公网、私网属性
print(IPAddress("100.64.0.1").is_private())
print(IPAddress("114.114.114.114").is_private()) print("==========3==========")
# 定义任意一段IP地址的范围
from netaddr import IPRange ip_range = IPRange("192.168.1.10", "192.168.1.130")
# 对这一段ip地址进行地址聚合
print(ip_range.cidrs()) print("==========4==========")
# 多个分散ip再聚合
from netaddr import cidr_merge ip_list = []
ip_list.append(IPNetwork("192.168.1.0/25"))
ip_list.append(IPNetwork("192.168.1.128/25"))
ip_list.append(IPNetwork("192.168.0.0/24"))
ip_list.append(IPNetwork("192.168.3.0/26"))
ip_list.append(IPNetwork("192.168.3.64/26"))
print(cidr_merge(ip_list)) print("==========5==========")
# 处理MAC地址
from netaddr import EUI, mac_unix, mac_cisco, mac_bare # mac = EUI("98:5a:eb:9f:35:f8")
mac = EUI("98-5A-EB-9F-35-F8")
print(mac) # mac显示风格1
mac.dialect = mac_unix
print(mac)
# mac显示风格2
mac.dialect = mac_cisco
print(mac)
# mac显示风格3
mac.dialect = mac_bare
print(mac) # mac地址厂家信息
print(mac.info)

输出:

print("==========1==========")
from netaddr import IPNetwork # IPNetwork('192.168.7.80/30'), IPNetwork('192.168.7.84/30'), IPNetwork('192.168.7.88/30'), IPNetwork('192.168.7.92/30')
ip_str = "192.168.7.83/28"
# ip_str="192.168.7.92/30"
# ip_str = "192.168.1.130/32"
# ip_str = "192.168.34.92/255.255.255.248"
print(ip_str)
ip = IPNetwork(ip_str)
print(ip) # 子网掩码
print(ip.netmask)
# 广播地址
print(ip.broadcast)
# 网络地址
print(ip.network)
# 取反掩码
print(ip.hostmask)
# 同一网段ip总数
print(ip.size)
# 修改地址的掩码长度为28
ip.prefixlen = 28
print(ip) # 将同一网段的ip,再化为掩码长度为30的几个子网段
new_ips_list = [x for x in ip.subnet(30)]
print(new_ips_list) # # 获取某一网段的所有主机地址
for ip in IPNetwork(ip_str).iter_hosts():
print(ip) print("==========2==========")
# IPAddress的用法
from netaddr import IPAddress # 判断地址的公网、私网属性
print(IPAddress("100.64.0.1").is_private())
print(IPAddress("114.114.114.114").is_private()) print("==========3==========")
# 定义任意一段IP地址的范围
from netaddr import IPRange ip_range = IPRange("192.168.1.10", "192.168.1.130")
# 对这一段ip地址进行地址聚合
print(ip_range.cidrs()) print("==========4==========")
# 多个分散ip再聚合
from netaddr import cidr_merge ip_list = []
ip_list.append(IPNetwork("192.168.1.0/25"))
ip_list.append(IPNetwork("192.168.1.128/25"))
ip_list.append(IPNetwork("192.168.0.0/24"))
ip_list.append(IPNetwork("192.168.3.0/26"))
ip_list.append(IPNetwork("192.168.3.64/26"))
print(cidr_merge(ip_list)) print("==========5==========")
# 处理MAC地址
from netaddr import EUI, mac_unix, mac_cisco, mac_bare # mac = EUI("98:5a:eb:9f:35:f8")
mac = EUI("98-5A-EB-9F-35-F8")
print(mac) # mac显示风格1
mac.dialect = mac_unix
print(mac)
# mac显示风格2
mac.dialect = mac_cisco
print(mac)
# mac显示风格3
mac.dialect = mac_bare
print(mac) # mac地址厂家信息
print(mac.info)

netaddr网络地址工具python的更多相关文章

  1. 惊艳发现VS工具python项目Search Paths的应用

    之前,在没有发现VS工具python项目Search Paths的应用时,举个例子:假如项目的文件目录如下: maintest/maintest.py想要使用common/tools.py文件时,不得 ...

  2. 比较几种工具Python(x,y) Anaconda WinPython

    浏览了一些相关的论坛,将几大工具的特点分别总结下: Python(x,y) 更新很慢,稳定性一般,默认带有很多包. WinPython  只能在windows上跑,界面友好,和Python(x,y)是 ...

  3. 简单bmp图片处理工具——python实现

    预备实现功能: 1.读取bmp文件 2.保存bmp文件 3.对bmp图片进行放大.缩小 4.对bmp图片进行灰度化 5.对bmp图片进行旋转 bmp文件格式非常简单,对于我这种初学者来说减少了不少不必 ...

  4. 自然语言处理工具python调用hanlp中文实体识别

    Hanlp作为一款重要的中文分词工具,在GitHub的用户量已经非常之高,应该可以看得出来大家对于hanlp这款分词工具还是很认可的.本篇继续分享一篇关于hanlp的使用实例即Python调用hanl ...

  5. You-Get 视频下载工具 Python命令行下载工具

    You-Get 是一个命令行工具, 用来下载各大视频网站的视频, 是我目前知道的命令行下载工具中最好的一个, 之前使用过 youtube-dl, 但是 youtube-dl 吧, 下载好的视频是分段的 ...

  6. 图像处理基本工具——Python 环境下的 Pillow( PIL )

    由于笔者近期的研究课题与图像后处理有关,需要通过图像处理工具对图像进行变换和处理,进而生成合适的训练图像数据.该系列文章即主要记录笔者在不同的环境下进行图像处理时常用的工具和库.在 Python 环境 ...

  7. 代码重复检查工具——python的使用CPD比较好用,clone digger针对py2,其他有名的如Simian PMD-CPD CloneDR CCCD CCFinder Bauhaus CodePro

    代码重复检测: cpd --minimum-tokens 100 --files g:\source\python\ --language python >log.txt 输出类似: ===== ...

  8. 【Python代码】TSNE高维数据降维可视化工具 + python实现

    目录 1.概述 1.1 什么是TSNE 1.2 TSNE原理 1.2.1入门的原理介绍 1.2.2进阶的原理介绍 1.2.2.1 高维距离表示 1.2.2.2 低维相似度表示 1.2.2.3 惩罚函数 ...

  9. 提效工具-python解析xmind文件及xmind用例统计

    现状 每个公司都有一个维护测试case的系统,有自研的也有买的,比如QC, 禅道等等,QA往往习惯使用xmind等思维导图工具来编写测试用例,因为思路清晰,编写方便,那么这就有一个问题,大多公司要求所 ...

随机推荐

  1. Sharding-JDBC 按日期时间分库分表

    简介 Sharding-JDBC 定位为轻量级Java框架,在Java的JDBC层提供的额外服务. 它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完 ...

  2. spring4.x企业应用开发读书笔记1

    第一章 概述 1 spring 以 ioc 和 aop 为内核,提供了展现层 springMVC.持久层SpringJDBC及业务层事务管理等一站式企业级应用技术. 2spring的特性 方便解耦,简 ...

  3. 这42个Python小例子,太走心

    告别枯燥,60秒学会一个Python小例子.奔着此出发点,我在过去1个月,将平时经常使用的代码段换为小例子,分享出来后受到大家的喜欢. 一.基本操作 1 链式比较 i = 3print(1 <  ...

  4. plsql 引用型变量

    set serveroutput on declare pename emp.ename%type; psal emp.sal%type; begin ; dbms_output.put_line(p ...

  5. 【交互】抖音VS快手

    从能量节约,懒惰的人性本质角度来分析,有点意思. https://www.ui.cn/detail/506135.html

  6. 寄存器vs缓存vs硬盘

    对于多核cpu来说(一个处理器cpu上有多个核),L1/L2是各个核独自的,L3是多个核共享的 如下配置:一个处理器cpu,六个核.处理器速度为2.2GHz即电流每秒钟可以振荡22亿次.二级缓存256 ...

  7. 在 Mac 系统下安装 PyCharm 的方法

    首先,进入 PyCharm 的官网,PyCharm: Python IDE for Professional Developers by JetBrains. 如上图所示,直接点击DOWNLOAD N ...

  8. oracle11g数据库导入导出方法教程

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/xinxiaoyonng/article/ ...

  9. LeetCode 556. 下一个更大元素 III(Next Greater Element III)

    556. 下一个更大元素 III 556. Next Greater Element III 题目描述 给定一个 32 位正整数 n,你需要找到最小的 32 位整数,其与 n 中存在的位数完全相同,并 ...

  10. C++Primer 5th Chap2 Variables and basic Types

    wchar_t,char16_t,char32_t用于拓展字符集 char和signed char并不一样,由编译器决定类型char表现上述两种中的哪一种 一般long的大小和int无二,如果超过in ...