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)