https://pypi.python.org/pypi/IPy/,然后解壓后使用命令pythonsetup.pyinstall安裝。使用1、顯示IP類型>>>IP('192.168.1.1').version()4>>>IP('::1').version()6類似如上所示,通過version方法可以的判斷輸入的IP是IPv4還是IPv6。2、網段計算輸出代碼:fromI" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python中IP地址處理IPy模塊的方法

系統 1858 0

安裝

先下載源碼,地址:ps://pypi.python.org/pypi/IPy/">https://pypi.python.org/pypi/IPy/ ,然后解壓后使用命令 python setup.py install 安裝。

使用

1、顯示IP類型

            
>>> IP('192.168.1.1').version()
 4
 >>> IP('::1').version()
 6

          

類似如上所示,通過version方法可以的判斷輸入的IP是IPv4還是IPv6 。

2、網段計算輸出

代碼:

            
from IPy import IP
ip=IP('192.168.0.0/28')
print ip.len()
for x in ip:
  print x
print ip.strNormal(0)
print ip.strNormal(1)
print ip.strNormal(2)
print ip.strNormal(3)
          

len()方法可以計算網段的IP個數。

strNormal()方法指定不同wantprefixlen參數可以定制不同類型的輸出。上面輸出類似如下:

            
16
192.168.0.0
192.168.0.1
192.168.0.2
192.168.0.3
......
192.168.0.15
192.168.0.0
192.168.0.0/28
192.168.0.0/255.255.255.240
192.168.0.0-192.168.0.15
          

3、格式轉換

實例介紹幾個常用方法,包括方向解析名稱、IP類型、IP進制轉換、網絡地址網段地址轉換。

            
ip=IP('192.168.0.1')
print ip.reverseNames() #反向解析地址格式
print ip.iptype() #顯示IP地址類型,私有還是公有
ip=IP('8.8.8.8')
print ip.iptype()
print ip.int() #轉換成整型格式
print ip.strHex() #轉換成十六進制格式
print ip.strBin() #轉換成二進制格式
#網絡地址、網段地址格式轉換
print (IP('192.168.1.0').make_net('255.255.255.0'))
print (IP('192.168.1.0/255.255.255.0',make_net=True))
print (IP('192.168.1.0-192.168.1.255',make_net=True))


          

4、地址比較

判斷IP地址和網段是否包含于另一個網段中,如下:

            
>>> '192.168.1.1' in IP('192.168.1.0/24')
True
>>> IP('192.168.1.0/24') in IP('192.168.0.0/16')
True


          

判斷兩個網段是否存在重疊,如下:

            
>>> IP('192.168.0.0/23').overlaps('192.168.1.0/24')
1
>>> IP('192.168.1.0/24').overlaps('192.168.2.0')
0
          

其中1表示存在重疊,0表示不存在重疊。

舉例

代碼:

            
#coding:utf-8
from IPy import IP
ip_s=raw_input("please input an IP or net-range: ")
ips=IP(ip_s)
if len(ips)>1: #網絡地址
  print('net: %s' % ips.net())
  print('netmask: %s' % ips.netmask())
  print('broadcast: %s' % ips.broadcast())
  print('reverse address: %s' % ips.reverseNames()[0])
  print('subnet: %s' % len(ips))
else: #單個地址
  print('reverse address: %s' % ips.reverseNames()[0])
print('hexadecimal: %s' % ips.strHex())
print('binary: %s' % ips.strBin())
print('iptype: %s' % ips.iptype())


          

運行結果:

            
C:\Users\admin\workspace\zhangnq>python IPy_test2.py
please input an IP or net-range: 192.168.1.1
reverse address: 1.1.168.192.in-addr.arpa.
hexadecimal: 0xc0a80101
binary: 11000000101010000000000100000001
iptype: PRIVATE
C:\Users\admin\workspace\zhangnq>python IPy_test2.py
please input an IP or net-range: 8.8.8.8
reverse address: 8.8.8.8.in-addr.arpa.
hexadecimal: 0x8080808
binary: 00001000000010000000100000001000
iptype: PUBLIC
C:\Users\admin\workspace\zhangnq>python IPy_test2.py
please input an IP or net-range: 192.168.1.0/28
net: 192.168.1.0
netmask: 255.255.255.240
broadcast: 192.168.1.15
reverse address: 0.1.168.192.in-addr.arpa.
subnet: 16
hexadecimal: 0xc0a80100
binary: 11000000101010000000000100000000
iptype: PRIVATE
          

ipy模塊用法

一個自動識別IP地址、子網、方向解析、IP類型等信息的腳本

            
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def ip():
  try:
    from IPy import IP  ###加載模塊
    ip_s = raw_input('請輸入IP地址或者網段地址:' )###輸入一個IP地址或者網段
    ips = IP(ip_s)  #定義元素
    if len(ips) > 1: #如果len出來的數字大于1,那么就是一個網段
      print('網絡地址: %s' % ips.net())
      print('子網掩碼: %s' % ips.netmask())
      print('網絡廣播地址: %s' % ips.reverseNames() [0])
      print('網絡子網數: %s' % len(ips))
    else:  ###否則就是一個地址
      print('IP反向解析: %s' % ips.reverseNames() [0])
      print('十六進制地址: %s' % ips.strHex())
      print('二進制地址: %s' % ips.strBin())
      print('地址類型: %s' % ips.iptype())
    print time.strftime("%Y-%m-%d %H:%M:%S")
    #code
  except Exception, e:
    logging.info("error:" + str(e) + "\n" + traceback.format_exc())
    print traceback.format_exc()
  finally:
    pass


          

運行效果:

            
[root@mylinuxer python]# 192.168.1.0/24
-bash: 192.168.1.0/24: No such file or directory
[root@mylinuxer python]# python python.py
請輸入IP地址或者網段地址: 192.168.1.0/24
網絡地址: 192.168.1.0
子網掩碼: 255.255.255.0
網絡廣播地址: 1.168.192.in-addr.arpa.
網絡子網數: 256
[root@mylinuxer python]# python python.py
請輸入IP地址或者網段地址: 192.168.1.1
IP反向解析: 1.1.168.192.in-addr.arpa.
十六進制地址: 0xc0a80101
二進制地址: 11000000101010000000000100000001
地址類型: PRIVATE
[root@mylinuxer python]# python python.py
請輸入IP地址或者網段地址: 116.213.249.211
IP反向解析: 211.249.213.116.in-addr.arpa.
十六進制地址: 0x74d5f9d3
二進制地址: 01110100110101011111100111010011
地址類型: PUBLIC
          

總結

以上所述是小編給大家介紹的Python中IP地址處理IPy模塊的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 26uuu欧美日韩国产 | 亚洲欧美日韩精品一区 | 久久精品在现线观看免费15 | 92国产福利久久青青草原 | 日韩www | 久久精品成人 | 久久久久久国产精品视频 | 波多野结衣xxxx性精品 | 国产精品久久久久久一级毛片 | 狠狠色丁香久久婷婷 | 亚洲欧美成人 | 在线观看自拍视频 | 国产精自产拍久久久久久 | 黄色毛片在线播放 | 老子影院午夜伦手机在线看 | 四虎影院永久 | 国产精品色 | 精品免费久久 | 日本乱人伦片中文字幕三区 | 亚洲视频在线网站 | 操干干 | 国产或人精品日本亚洲77美色 | 成人亚洲精品7777 | 四虎精品影院2022 | 天天操夜| 9l国产精品久久久久麻豆 | 亚洲sss综合天堂久久久 | 国产精品一区牛牛影视 | 正在播放国产乱子伦视频 | 国产精品视频分类一区 | 久久久久中文 | 国产成人久久精品二区三区 | 免费中文字幕视频 | 国产羞羞事1000部在线观看 | 日韩国产欧美精品综合二区 | 色狠狠综合 | 精品欧美一区二区三区免费观看 | 看全色黄大色大片免费久黄久 | 国产成人午夜片在线观看 | 色综合久久综合欧美综合 | 欧美在线观看一区二区三 |