解説
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 なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。