摘要:首先要準備一個環境,安裝插件,本人用的是提取的輕量級環境,所以直接下載官網的源碼,解壓后找到文件夾復制到環境目錄的文件夾里即可。使用方法首先引入確定起始和結尾,無論多復雜都可以轉換運行后輸出結果
概述
兩種情況,一種給的是IP 范圍,給了一個區間例如
參考:http://www.cnblogs.com/amaoxi...
64.233.196.0-64.233.196.25#將這個范圍內的IP 全部解析出來
另一種情況就是給了一個掩碼地址,例如
192.168.1.0/24 或者192.168.1.0 255.255.255.0 #將這個掩碼范圍內的所有 IP 地址解析輸出出來第一種情況范圍
#coding:utf-8 def ip2num(ip): ips = [int(x) for x in ip.split(".")] return ips[0]<< 24 | ips[1]<< 16 | ips[2] << 8 | ips[3] def num2ip (num): return "%s.%s.%s.%s" % ((num >> 24) & 0xff, (num >> 16) & 0xff, (num >> 8) & 0xff, (num & 0xff)) #return "%s.%s.%s.%s" % ((num & 0xff000000)>>24,(num & 0x00ff0000)>>16,(num & 0x00000ff00)>>8,num & 0x000000ff) def gen_ip(ip): start ,end = [ip2num(x) for x in ip.split("-")] return [num2ip(num) for num in range(start,end+1) if num & 0xff] print gen_ip(64.233.196.0-64.233.196.25) 輸入結果為: ["64.233.196.22", "64.233.196.23", "64.233.196.24", "64.233.196.25", "64.233.196.26", "64.233.196.27", "64.233.196.28", "64.233.196.29"] 利用0xff 把多生成的ip屏蔽掉 最后一句中 if num & 0xff 作用是過濾掉 最后一段為 0 的IP第二種情況掩碼
利用 IPy 這個 python 自帶的模塊
from IPy import IP ip = IP("192.168.0.0/24") print ip.len() for x in ip: print(x)
反向解析名稱、IP類型、IP轉換等 >>> ip = IP("192.168.1.20") >>> ip.reverseNames() #反向解析地址格式 ["20.1.168.192.in-addr.arpa."] >>> ip.iptype() #私網類型 "PRIVATE" >>> IP("8.8.8.8").iptype() #公網類型 "PUBLIC" >>> IP("8.8.8.8").int() #轉換為整型格式 134744072 >>> IP("8.8.8.8").strHex() #轉換為十六進制格式 "0x8080808" >>> IP("8.8.8.8").strBin() #轉換成二進制格式 "00001000000010000000100000001000" >>> print IP("0x8080808") #十六進制轉換為IP格式 8.8.8.8 >>> print IP(134744072) #整型格式轉換為IP格式 8.8.8.8 IP方法也支持網絡地址的轉換,例如根據IP和掩碼產生網段格式 >>> print (IP("192.168.1.0").make_net("255.255.255.0")) 192.168.1.0/24 >>> print (IP("192.168.1.0/255.255.255.0",make_net=True)) 192.168.1.0/24 >>> print (IP("192.168.1.0-192.168.1.255",make_net=True)) 192.168.1.0/24 通過strNormal方法指定不同wantprefixlen參數值以定制不同輸出類型的網段,輸出類型為字符串 >>> IP("192.168.1.0/24").strNormal(0) #無返回 "192.168.1.0" >>> IP("192.168.1.0/24").strNormal(1) #prefix格式 "192.168.1.0/24" >>> IP("192.168.1.0/24").strNormal(2) #decimalnetmask格式 "192.168.1.0/255.255.255.0" >>> IP("192.168.1.0/24").strNormal(3) #lastIP格式 "192.168.1.0-192.168.1.255"ps:
使用python將IP段范圍轉換成CIDR
因為最近在整理用于某些工具使用的IP段,像一些IP范圍如:64.233.56.37-64.233.56.215,某些軟件不支持,只支持像:64.233.56.37/26這樣的CIDR格式,于是就在網上找了一下轉換的方法,還真找到了不過是外語,這里簡單記錄下需要的工具。
首先要準備一個python環境,安裝netaddr插件,本人用的是提取的輕量級python環境,所以直接下載官網的源碼,解壓后找到netaddr文件夾復制到python環境目錄的lib文件夾里即可。
使用方法: # 首先引入netaddr import netaddr # 確定起始和結尾IP,無論多復雜都可以轉換 startip = "64.233.56.37" endip = "64.233.56.215" cidrs = netaddr.iprange_to_cidrs(startip, endip) for k, v in enumerate(cidrs): iplist = v print iplist 運行后輸出結果: 64.233.56.37/32 64.233.56.38/31 64.233.56.40/29 64.233.56.48/28 64.233.56.64/26 64.233.56.128/26 64.233.56.192/28 64.233.56.208/29
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/11274.html
摘要:首先要準備一個環境,安裝插件,本人用的是提取的輕量級環境,所以直接下載官網的源碼,解壓后找到文件夾復制到環境目錄的文件夾里即可。使用方法首先引入確定起始和結尾,無論多復雜都可以轉換運行后輸出結果 概述 兩種情況,一種給的是IP 范圍,給了一個區間例如參考:http://www.cnblogs.com/amaoxi... 64.233.196.0-64.233.196.25#將這個范圍內...
摘要:字加圖文帶你了解地址劃分子網掩碼的作用實際中地址規劃是怎么樣的子網在用同樣的方法,,第三個子網網段用了,還三個可以繼續使用,使用最小的,,計算出財務部門。 作者:一天 首發公眾號:網絡之路博客(ID:NetworkBlog)?(1)子網掩碼之所以出現大量地址浪費,在于早期的地址分類采用的是固定的網絡位與主機位的長度,不能靈...
閱讀 2166·2023-04-26 00:43
閱讀 2686·2021-11-22 15:22
閱讀 3819·2021-11-11 16:55
閱讀 970·2021-11-04 16:06
閱讀 1789·2019-08-30 14:12
閱讀 1003·2019-08-30 14:02
閱讀 3371·2019-08-29 17:05
閱讀 1419·2019-08-29 12:27