【RTX1100】初期設定をLANケーブル接続で行う方法をpythonで書いただけ。光回線を契約したらwiresharkをインストールしてRTX1000 1100 ケーブル無しで設定 | システムガーディアン株式会社の結果と一致するか確かめる予定。
from typing import Tuple def mac2ipv6(mac: str) -> str: if (len(mac) != 12): raise ValueError("bad input length {} ({})".format(len(mac), mac)) for i in mac.lower(): if i not in [hex(i)[2:] for i in range(16)]: raise ValueError("input should be hexadecimal: {}".format(mac)) # 参考: https://pg.kdtk.net/1849 mac_hex = "0x" + mac mac_bin = format(int(mac_hex, 16), "#b") # 7bit目をxorとマスクを使って反転 mask = ["0", "b"] + ["0"]*48 mask[7-1+2] = "1" mask = "".join(mask) tmp = hex(int(mac_bin, 2) ^ int(mask, 2)) tmp = format(int(tmp, 16), "#014x") #12桁になるように0埋め # 中央にff:feを挿入 tmp = tmp[:8] + "fffe" + tmp[8:] # 先頭にローカルアドレスfe80:0000:0000:0000相当のfe8000000000を追加 # (サフィックスの0xは削除) tmp = tmp[2:] ipv6 = "fe80" + "0000" + "0000" + "0000" + tmp # 16bit区切りに変更 ipv6 = ":".join([ipv6[4*i:4*i + 4] for i in range(8)]) # ipv6_abbrev = "fe80::" + ":".join([tmp[4*i:4*i + 4] for i in range(4)]) return ipv6