システム基礎情報モジュール詳細解の実用的なIPyノート(二)ノート
1.IPv 4とIPv 6の区別
2.ipクラスでよく見られる方法
3.ipメソッドはネットワークアドレスの変換をサポートする
4.strNormal()で異なるwantprefixlenパラメータ値を指定して異なる出力タイプのセグメントをカスタマイズし、出力タイプはString
5.IPオブジェクトの比較を支援するために、類似数値型データの比較をサポートする.
demoは入力したipまたはサブネットに基づいてネットワーク,マスク,ブロードキャスト,逆解析,サブネット数,ipタイプなどの情報を返す.
IP('10.0.0.0/8').version //4
IP('::1').version //6
2.ipクラスでよく見られる方法
>>>from IPy import IP
>>>ip=IP('192.168.1.20')
>>>ip.reverseName() #
>>>ip.iptype() #ip
>>>IP('8.8.8.8').int() #
>>>IP('8.8.8.8').strHex() #
>>>IP('8.8.8.8').strBin() #
>>>print(IP(0x8080808)) # IP
3.ipメソッドはネットワークアドレスの変換をサポートする
>>>from IPy import 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
4.strNormal()で異なるwantprefixlenパラメータ値を指定して異なる出力タイプのセグメントをカスタマイズし、出力タイプはString
>>>IP('192.168.1.0/24').strNormal(0) #wantprefixlen=0, 。
>#'192.168.1.0'
>>>IP('192.168.1.0/24').strNormal(1) #wantprifixlen=1,prefix 。
>#'192.168.1.0/24'
>>>IP('192.168.1.0/24').strNormal(2) #wantprifixlen=2,decimalnetmask 。
>#'192.168.1.0/255.255.255.0'
>>>IP('192.168.1.0/24').strNormal(3) #wantprifixlen=3,lastIP 。
>#'192.168.1.0-192.168.1.255'
5.IPオブジェクトの比較を支援するために、類似数値型データの比較をサポートする.
>>>IP('10.0.0.0/24')'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/23').overlaps('192.168.2.0')
#0
demoは入力したipまたはサブネットに基づいてネットワーク,マスク,ブロードキャスト,逆解析,サブネット数,ipタイプなどの情報を返す.
#!/usr/bin/python
from IPy import IP
# , ip
ip_s=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))
#
print('iptype: %s' % ips.iptype())
else: # IP
# IP
print('reverse address: %s' % ips.reverseNames()[0])
# 16
print('hexadecimal: %s' % ips.strHex())
#
print('binary ip: %s' % ips.strBin())
#
print('iptype: %s' % ips.iptype())