Python之實用的IP地址處理模組IPy
實用的IP地址處理模組IPy
在IP地址規劃中,涉及到計算大量的IP地址,包括網段、網路掩碼、廣播地址、子網數、IP型別等
別擔心,Ipy模組拯救你。Ipy模組可以很好的輔助我們高效的完成IP的規劃工作。
原始碼方式安裝Ipy模組
$ wget https://pypi.python.org/packages/source/I/IPy/IPy-0.81.tar.gz --no-check-certificate
$ tar zxvf IPy-0.81.tar.gz
$ cd IPy-0.81/
$ sudo python setup.py install
IP地址、網段的基本處理
IPy模組包含IP類,使用它可以方便處理絕大部分格式為IPv6的網路和地址
比如通過version方法來區分出IPv4和IPv6
>>> import IPy >>> IPy.IP('10.0.0.0/8').version() 4 >>> IPy.IP('::1').version() 6
通過指定的網段輸出該網段的IP個數和所有的IP地址清單
如下:
$ more ip.py #!/usr/bin/env python import IPy ip = IPy.IP('192.168.0.0/16') 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'
多網路計算方法詳解
比較兩個網段是否存在包含、重疊等關係,比如同網路但不同prefixlen會認為是不相等的網段,如10.0.0.0/16不等於10.0.0.0/24,另外即使具有相同的prefixlen但處於不同的網路地址,同樣也視為不相等,如10.0.0.0/16不等於192.0.0.0/16。IPy支援類似於數值型資料的比較,以幫助IP物件進行比較。
比較IP大小
>>> IP('10.0.0.0/24') < IP('12.0.0.0/24') True
判斷IP地址和網段是否包含於另一個網段中
>>> '192.168.1.100' in IP('192.168.1.0/24') True >>> IP('192.168.1.0/24') in IP('192.168.0.0/16') True
判斷兩個網段是否存在重疊(overlaps方法)
>>> IP('192.168.0.0/23').overlaps('192.168.1.0/24') 1 >>> IP('192.168.1.0/24').overlaps('192.168.2.0/24') 0
學習書本:《Python自動化運維技術與最佳實踐》--劉天斯
本文為原創,若轉載,請註明出處,謝謝
相關推薦
Python之實用的IP地址處理模組IPy
實用的IP地址處理模組IPy 在IP地址規劃中,涉及到計算大量的IP地址,包括網段、網路掩碼、廣播地址、子網數、IP型別等 別擔心,Ipy模組拯救你。Ipy模組可以很好的輔助我們高效的完成IP的規劃工作。 原始碼方式安裝Ipy模組 $ wget https://pypi.python.org/packages
python IP地址處理模組IPy
獲取制定網段IP地址個數和地址清單,並存儲至列表中 import IPy available_ips = [ ] ips = IPy.IP( ’ 22.27.66.128/25 ’ ) print( ips.len() )
IP地址處理模組IPy
一、IPy介紹 IPy-用於處理IPv4和IPv6地址和網路的類和工具。 API介紹: IP類允許一個舒適的解析並處理大多數用於IPv4和IPv6地址和網路的符號。它受到RIPE的Perl模組NET :: IP介面的極大啟發,但不共享實現。它不共享非CIDR網路掩碼,所以像這樣的時髦網路掩碼0xff
Python學習筆記-IP地址處理模塊Ipy
模塊 python ipy IP地址處理模塊Ipy IPy模塊可以很好的輔助我們高效完成IP的規劃工作。 參考:https://github.com/autocracy/python-ipy 安裝IPy模塊[[email protected]/* */ ~]#
Python之日期與時間處理模組(date和datetime)
本節內容 前言 相關術語的解釋 時間的表現形式 time模組 datetime模組 時間格式碼 總結 前言 在開發工作中,我們經常需要用到日期與時間,如: 作為日誌資訊的內容輸出 計算某個功能的執行時間 用日期命名一個日誌檔案的名稱 記錄或展示某文章的釋出或修改
1.Python中IP地址處理IPy模塊
exc rom 進制轉換 使用 targe adc put efi mes 安裝 先下載源碼,地址:ps://pypi.python.org/pypi/IPy/">https://pypi.python.org/pypi/IPy/ ,然後解壓後使用命令python s
ip地址處理模塊IPy
python ipy下載以及安裝:下載地址:https://pypi.python.org/packages/88/28/79162bfc351a3f1ab44d663ab3f03fb495806fdb592170990a1568ffbf63/IPy-0.83.tar.gz tar -zxvf IPy-0.
Python之基本語法join函式,模組處理
函式:string.join() Python中有join()和os.path.join()兩個函式,具體作用如下: join(): 連線字串陣列。將字串、元組、列表中的元素以指定的字元(分隔符)連線生成一個新的字串 print('\n
火狐瀏覽器之偽造IP地址
前言 目的 http請求 .org 發現 步驟 mod strip forward 前言: 前段時間,測試過程中需要偽造來源IP地址,百思不得其解,因而發現火狐瀏覽器的這個Modify Headers插件,十分好用,推薦給大家。 步驟: 1、安裝插件Modify Head
IP地址和子網劃分學習筆記之《IP地址基礎篇》
IP地址 MAC地址 網絡通信 一、IP地址和MAC地址 1、MAC地址 MAC(Media Access Control,介質訪問控制)地址,或稱為物理地址,也叫硬件地址,用來定義網絡設備的位置,MAC地址是網卡出廠時設定的,是固定的(但可以通過在設備管理器中或註冊表等方式修改,同一網段內的MA
Linux 學習之路 --------ip地址虛擬網路
// ifconfig 檢視IP地址 網路資訊 我的IP 39.161.136.25 ① 為網絡卡臨時配置IP地址 ifconfig eth0 39.161.136.5 (netmask /255.255.255.0&n
Spark案例之根據ip地址計算歸屬地二
之前的是單機版的根據ip地址計算歸屬地,當資料量小的時候還可以,但是在大資料實際生產中是不行的,必須將它改造成一個Spark程式,然後在Spark叢集上執行 Spark程式和單機版的程式不一樣,下面來仔細分析一下Spark程式的執行流程 首先是一個Spark叢集,叢集中有Master和
Spark案例之根據ip地址計算歸屬地一
1.需求 根據訪問日誌中的ip地址計算出訪問者的歸屬地,並且按照省份,計算出訪問次數,最後將計算好的結果寫入到Mysql中 2.思路分析 1)整理訪問日誌中的資料,切分出ip欄位,然後將ip欄位轉換成十進位制 2)載入ip地址的規則,取出有用的欄位,然後將
Spark案例之根據ip地址計算歸屬地四
之前案例三中的ip地址規則是在Driver端的機器磁碟中儲存著的,但是現在如果實在hdfs中儲存著的又該如何實現呢 首先要分析清楚才能實現,儲存在hdfs中並不像想象中的那麼容易,首先程式碼實在Driver端寫的,在Driver端寫從hdfs中取出ip地址規則的程式碼會觸發action,然後生成
Spark案例之根據ip地址計算歸屬地三
案例二中已經詳細的通過圖和介紹詳細的說明了在Spark叢集中根據ip地址計算歸屬地並將結果儲存到mysql資料庫中的執行流程,下面就來做具體的實現 現在的環境就如案例二中說的一樣,ip地址規則是儲存在Driver端的機器磁碟中,而日誌檔案是儲存在hdfs中,所以現在需要首先在Driver端拿到i
python整數與IP地址轉換 python整數與IP地址轉換 [轉]
python整數與IP地址轉換 [轉] 我們有時會將一個整數與IP地址進行互換,用python程式碼實現很簡單 將一個整數如2000000,變為一個IP地址的方式 >>> import socket >>>
Python之物件的永久儲存模組---pickle
經常遇到在Python程式執行中得到了一些字串、列表、字典等資料,想要長久的儲存下來,方便以後使用,而不是簡單的放入記憶體中關機斷電就丟失資料。 這個時候Pickle模組就派上用場了,它可以將物件轉換為一種可以傳輸或儲存的格式。 python的pickle模組實現了基本的資料序列和反序列化
反爬蟲技術之防止IP地址被封殺
在使用爬蟲爬取別的網站的資料的時候,如果爬取頻次過快,或者因為一些別的原因,被對方網站識別出爬蟲後,自己的IP地址就面臨著被封殺的風險。一旦IP被封殺,那麼爬蟲就再也爬取不到資料了。 那麼常見的更改爬蟲IP的方法有哪些呢? 1,使用動態IP撥號器伺服器。 動態IP撥號伺服器的IP地址是可
利用python爬取IP地址歸屬地等資訊!
import requests url = "http://m.ip138.com/ip.asp?ip=" try: r = requests.get(url + '202.204.80.112') r.raise_for_status()
面試題之獲取IP地址
#方法一import re from lxml import html import requests def myRequest(url): ''' 封裝自己爬取exam頁面的request :param url: 地址 :return: ''' res