rabbit51

it's since Nov.30 2005
May.29 2014, transferred from broach

ヤマハ NVR510 / NVR500 のDHCPv6-PDをCUSTOM-GUIで再取得させる

2021-08-04 14:00:00 | NVR510
NVR510/500に「カスタムGUI(CUSTOM GUI)」機能がある事を知っていたが、「簡単設定機能」や「ダッシュボード」をユーザー毎にカスタムページ化することに意味があるのか?程度の認識でいた。「NVR510 / NVR500 のDHCPv6-PDをリモートで再取得させる」作成時に再度内容を確認してみた。
ホストからルーターへの設定転送」では、管理者権限で得たセッションIDを使ってコマンドをPOST実行する例が記載されていた。もう少し読み進んでみると「設定用APIをブラウザ以外のHTTPクライアントから利用する」を利用するとコマンドを実行できそう。試してみる。

(1)CUSTOM-GUI設定
NVR500.config/NVR510.config
httpd custom-gui use on
httpd custom-gui api use on
httpd custom-gui api password JYUMON 


(2)CUSTOM-GUIでコマンド実行
wget -O - --post-data="show status ipv6 dhcp" http://nvr500-lan2.familyname/custom/api?password=JYUMON
wget -O - --post-data=$'show environment\r\nshow status ipv6 dhcp\r\n' http://nvr500-lan2.familyname/custom/api?password=JYUMON
wget -q -O - --post-data="show status ipv6 dhcp" http://nvr500-lan2.familyname/custom/api?password=JYUMON | grep prefix


(3)luaスクリプトを実行
wget -O - --post-data="lua sd1:/lua/RebindDHCPv6-PD.lua" http://nvr500-lan2.familyname/custom/api?password=JYUMON
RebindDHCPv6-PD.lua
--[[
 Aug.2 '2021 Rabbit51
 RebindDHCPv6-PD.lua
]]
---------------------------------------------------------------
-- /custom/api w/ http post--
---------------------------------------------------------------
rtn,str = rt.command("syslog debug on","off")
rtn,str = rt.command("ipv6 lan2 dhcp service client","on")
if rtn then
    rtn,array = rt.syslogwatch("%[IPv6%] prefix",1,10)
    if rtn > 0 then
        pf = string.match(array[1],"%[IPv6%] prefix (%x+:%x+:%x+:%x+::/60)")
        rtn,str = rt.syslog("info","[DHCPv6-PD] prefix: " .. pf)
        print("[DHCPv6-PD] prefix: " .. pf)
    else
        rtn,str = rt.syslog("info","[DHCPv6-PD] timeout")
        print("[DHCPv6-PD] timeout")
    end
end
rtn,str = rt.command("syslog debug off")


luaスクリプトをCUSTOM-GUIで実行出来るが、スクリプト出力を受けることが出来ない。「lua sd1:/lua/RebindDHCPv6-PD.lua」の起動結果出力は無い。「show lua status」で実行状態や履歴情報が得られる。
DHCPv6-PDのPrefix情報取得に時間が掛かるので、スクリプト結果が表示出来ないとsleepなどで調整が必要となる。

(4)DHCPv6-PDを再取得
rebind.sh
#!/bin/sh
wget -q -O - --post-data="ipv6 lan2 dhcp service client" http://nvr500-lan2.familyname/custom/api?password=JYUMON
while [ "$pf" =  "" ]
do
    sleep 1
    pf=`wget -q -O - --post-data="show status ipv6 dhcp" http://nvr500-lan2.familyname/custom/api?password=JYUMON | grep prefix | sed 's/ *prefix: //'`
    echo -n "."
done
echo $pf





 


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ヤマハ NVR510 / NVR500のロ... | トップ | ひかり電話 HGW PR-600MI のD... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

NVR510」カテゴリの最新記事