失敗談 技術

小ネタ – 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になるという、、可変では使わないからな、、たぶん。使うときは気にしよう。

-失敗談, 技術

執筆者:

関連記事

見守り用カメラを探したら意外とよかった

過去にこの記事のように実家とのビデオ通話を設定したことがあります。 が、実際には、1回しか使われませんでした。 使われない理由は、おそらく難しいから 設定も難しいですし、そもそも両親が使い始めるのも難 …

vscodeのRemote Developmentで「権限がない」と怒られた時

小ネタです。 vscodeのRemote Developmentにてパスワードなしログイン vscodeは時々使うのですが、リモート開発するのにRemote Developmentが便利なので使ってま …

PythonでPKCS#12を使用して暗号/復号する

1. はじめに 仕事でVPN関係のシステム開発をすることになりました。まずは暗号機能の基本を思い出すため、Pythonで、PKCS#12の公開鍵で暗号、秘密鍵で復号するプログラムを作ってみようと思いま …

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

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

CentOS7 + Django2.2でSQlite3を使用する方法

そのままだとエラーになる 素のCentOS7で、SQLite3を使用して、Djangoアプリを起動すると以下のエラーになります。 File “/opt/webapps/django_upload/.v …

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