#39

サブネット:AND演算でネットワーク部を求める

サブネットマスクとのAND演算でネットワーク部を取り出します。

解説

IPアドレスは前半が「ネットワーク部」(どのグループに属するか)、後半が「ホスト部」(その中の何番目の機器か)に分かれています。どこまでがネットワーク部かを決めるのがサブネットマスク(例:255.255.255.0)です。 IPアドレスとマスクをビットごとにAND演算すると、マスクが1の桁だけが残り、ネットワーク部が取り出せます。ANDは「両方1のときだけ1」になる演算です。 同じネットワークに属する2台は、ネットワーク部が一致します。

書き方

・zip(ip, mask): 2つのリストを先頭から組にして同時に取り出す。
・a & m: ビットごとのAND演算(両方1の桁だけ1)。
・リスト.append(r): 計算結果をネットワーク部に追加。
・'.'.join(map(str, ip)): map(str, ...) で各要素を文字列化し '.' で連結。
・f"{a:>3}": f文字列で右寄せ3桁に整形。

書いて動かす

この回の課題

IPアドレスとサブネットマスクをオクテットごとにAND演算し、ネットワーク部を取り出してみよう。

コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。

自分のPCでも続けてみませんか

Windows版 InsightPy は Python を同梱しているので、環境構築なしで同じコードを書いて実行できます。 書いたコードを保存しておけるほか、ステップ実行で変数の変化を1行ずつ確かめられます。 個人の学習や私的な目的でのご利用は、31日目以降も無料です(スクリプトの保存は10本まで)。 このブラウザ版の学習センターも、引き続き無料でお使いいただけます。