#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演算し、ネットワーク部を取り出してみよう。

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

もっと本格的に使うなら

Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。