1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PythonでCIDR表記のネットワークアドレスの色々な情報を調べてみる

Last updated at Posted at 2022-10-09

はじめに

 PythonでIPアドレスやネットワークアドレスを表現したり操作するための超絶便利なライブラリnetaddrが素敵すぎるので、このライブラリと戯れながら、PythonでCIDR表記のネットワークアドレスから利用可能なホスト数やレンジを調べてみる。

手っ取り早く、ネットワークアドレスの情報が知りたい人のためにサイトを作ったので、宜しければどうぞ。

使い方はこちら

1. 準備

・netaddrをインストール

$ pip install netaddr

・ライブラリ読み込み

>>> from netaddr import *

2. CIDR表記のネットワークアドレスを扱う

・CIDR表記のネットワークアドレスをIPNetworkクラスに渡す

>>> ip = IPNetwork('192.168.1.0/24')

・みてみる

>>> ip
IPNetwork('192.168.1.0/24')

・これで192.168.1.0/24に関する色々な情報を調べられる準備が完了

3. ネットワークアドレスの色々をみてみる

・ネットワークに含まれるIPアドレス数とホストアドレス数

まずはこのネットワークに含まれるIPアドレス数とホストアドレス数を調べてみる。

>>> ip.size
256

ネットワークアドレス(192.168.1.0)とブロードキャストアドレス(192.168.1.255)を除いた利用可能なホストアドレス数は以下で調べられる。

>>> len(list(ip.iter_hosts()))
254

答えは254

ちなみにこのネットワークのネットワークアドレスとブロードキャストアドレスが知りたい時はそれぞれ、

>>> ip.network
IPAddress('192.168.1.0')

>>> ip.broadcast
IPAddress('192.168.1.255')

とすれば、こんな感じでIPAddressオブジェクトで結果が返ってくる。超簡単:heart:

このネットワークのレンジが知りたい時はネットワークの先頭と末尾をそれぞれ、

>>> ip[0]
IPAddress('192.168.1.0')

>>> ip[-1]
IPAddress('192.168.1.255')

として見てみると、こんな感じでやはり、IPAddressオブジェクトで結果が返って来るので、このネットワークのレンジは192.168.1.0~192.168.1.255であることがわかる。

なお、IPNetworkオブジェクト、IPAddressオブジェクトを文字列として使いたい時はstr()関数を使えば文字列型で返してくれる。

>>> str(ip)
'192.168.1.0/24'

>>> str(ip.network)
'192.168.1.0'

まとめ

このようにnetaddrって、なんて便利で素敵なライブラリなんでしょう:heart::heart::heart:って思いますよね。

そのほかにもまだまだ便利な使い方が[本家のページ ]のチュートリアルに掲載されているので詳しく知りたい方はそちらで。

そして、「とやかく言わずに、結果だけ知りたいぞ!」って方向けにnetaddrを使って色々な情報を調べた結果だけを視覚的に表示するサイトを作ったので、よかったらこちらもどうぞ。

ツールの使い方

[IP Address(CIDR)]にCIDR表記のネットワークアドレス(例 192.168.1.0/24)を入力して、[Calc]をクリックするとそのネットワークアドレスに関する以下の情報を表示します。

 ・ネットワークアドレス (10進数/2進数)
 ・サブネットマスク (10進数/2進数)
 ・ホストマスク (10進数/2進数)
 ・ブロードキャストアドレス (10進数/2進数)
 ・アドレスレンジ
 ・ホスト部のIPアドレス数
 ・使用可能なIPアドレス数
 ・IPv6アドレス
 ・該当ネットワークが以下に該当するかどうか
  プライベート/ユニキャスト/マルチキャスト/ループバック/リンクローカル/予約

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?