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. Docker打包部署前端项目与负载均衡

    设置淘宝镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org //在home/fn1 home/fn2放入项目和nginx ...

  2. Python装饰器之functools.wraps的作用

    # -*- coding: utf-8 -*- # author:baoshan def wrapper(func): def inner_function(): pass return inner_ ...

  3. CNeo编程语言概述

    C语言诞生于1970年,当时在AT&T实验室由Dennis Ritchie主导开发的.据说当时仅用了一周的时间就做好了C语言编译器,所以尽管C语言从90年正式纳入ISO标准委员会,其编号为IS ...

  4. 大名鼎鼎的UniDAC手工安装

    第一次开博,该写点什么.由于懒,很多事情,都不想动.不过,懒不能解决遗忘的毛病.还是动手,记录一下吧. 好了,言归主题. UniDAC 的手工安装. 现在Delphi,已经发展到了XE6,支持多种移动 ...

  5. [LeetCode] 171. Excel Sheet Column Number 求Excel表列序号

    Related to question Excel Sheet Column Title Given a column title as appear in an Excel sheet, retur ...

  6. [LeetCode] 216. Combination Sum III 组合之和 III

    Find all possible combinations of k numbers that add up to a number n, given that only numbers from ...

  7. 最新 大众书网java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.大众书网等10家互联网公司的校招Offer,因为某些自身原因最终选择了大众书网.6.7月主要是做系统复习.项目复盘.Leet ...

  8. webbench源码学习笔记

    学习内容 一共五百多行代码,其中包含了linux编程常用的API.可以通过学习源码,把不熟悉的API练习练习. 1 如何使用webbench (1)查看参数帮助 (2)运行方法 即以上模拟30个客户端 ...

  9. 2019-10-11 ubuntu ssh远程免密登录配置及配置别名

    在客户端能正常远程访问服务端的前提下. 客户端: 1)配置免密 执行 ssh-keygen 即可生成 SSH 钥匙,回车三次. 执行 ssh-copy-id user@remote,可以让远程服务器记 ...

  10. QT支持TTF字体

    1.编译QT库时需要支持TTF字体 ./configure -qt-freetype -fontconfig ... 2.将TTF字符库拷贝到QT_QPA_FONTDIR下 # 注意,如果不清楚字体所 ...