失敗談 技術

小ネタ – Python3 でIPv4アドレスの第三オクテットを加算する方法

投稿日:

ホント小ネタです。IPv4アドレスの第四オクテットは単に加算すればいいですが、第三オクテットを加算する方法が見つかりませんでした

通常はしないのかもしれませんが、、そして残念ながら、いい方法がありませんでした。結局intにしてx 256にするという当たり前な方法しか。。

以下の感じです。

# 一行で書くと以下
# ipaddress.ip_address(int(ipaddress.ip_address('192.168.1.1'))+(num * 256))

import ipaddress


class OctetIPAddress():

    def __init__(self, ipaddr):
        self._ipaddr = ipaddress.ip_address(ipaddr)

    def third_octet(self, num):
        return ipaddress.ip_address(int(self._ipaddr) + (num * 256))


if __name__ == '__main__':
    print(OctetIPAddress('192.168.1.1').third_octet(3))

実行すると以下になります。

$ python3 pyip.py
192.168.4.1

もうちょっと考えるといい方法があるのかもしれませんが、とりあえず妥協。。

そして当然ながら、numを257にすると、192.169.2.1になるという、、可変では使わないからな、、たぶん。使うときは気にしよう。

-失敗談, 技術

執筆者:

関連記事

Djangoのurls.pyにはまった。。

けっこうハマった。。 Django 2.2.4の話。以下のエラーを修正するのに、とっても時間がかかった。 django.urls.exceptions.NoReverseMatch: Reverse …

Pythonのmock.patchを使ってみる

単体テストによく使われるMockライブラリ Pythonで単体テストを行う際、実際のライブラリを使用してしまうと、実際の環境を用意しなければいけません。 例えば、データベースのテストをする際に、データ …

コンピュータ系の人のためのCoinhive最高裁の読み方(なぜ無罪だったか)

以下ですべて断定してますが、そもそもからしてすべて想定です。私は法律家ではないので。 前回の記事で、Coinhiveの高裁判決について書きました。 今回は、無罪と決まったCoinhiveの最高裁判決を …

pipenv + Apache + Django起動設定

仕事でwebアプリケーションを作成しています。 Djangoで作成し、webサーバをApache、環境をpipenvで設定したpython3環境上で動かす予定です。 Apacheが起動するまでに、苦労 …

整形/文法チェック ツール インストールまとめ

1.はじめに 最近、仕事で複数スクリプトを組み合わせてコーディングすることが多くなりました。 それだと、各スクリプトの癖を忘れたり、そもそもどう書くのか忘れたりと、不良を作りこむ可能性が多くなります。 …

google オプトアウト Click here to opt-out.