NVR510/500に「カスタムGUI(CUSTOM GUI)」機能がある事を知っていたが、「簡単設定機能」や「ダッシュボード」をユーザー毎にカスタムページ化することに意味があるのか?程度の認識でいた。「NVR510 / NVR500 のDHCPv6-PDをリモートで再取得させる」作成時に再度内容を確認してみた。
「ホストからルーターへの設定転送」では、管理者権限で得たセッションIDを使ってコマンドをPOST実行する例が記載されていた。もう少し読み進んでみると「設定用APIをブラウザ以外のHTTPクライアントから利用する」を利用するとコマンドを実行できそう。試してみる。
(1)CUSTOM-GUI設定
(2)CUSTOM-GUIでコマンド実行
![](https://blogimg.goo.ne.jp/user_image/76/2b/b03ab0f1091b3f1d52413e4275de6cb4.png)
![](https://blogimg.goo.ne.jp/user_image/03/6e/055f660cad9785d0cf564c5e3bf04b0e.png)
![](https://blogimg.goo.ne.jp/user_image/53/d4/580ec35f86e8a8ac22ad0fedc3e8713b.png)
(3)luaスクリプトを実行
![](https://blogimg.goo.ne.jp/user_image/14/36/9a958d310dea3ab1cba00b63a35d636e.png)
luaスクリプトをCUSTOM-GUIで実行出来るが、スクリプト出力を受けることが出来ない。「lua sd1:/lua/RebindDHCPv6-PD.lua」の起動結果出力は無い。「show lua status」で実行状態や履歴情報が得られる。
DHCPv6-PDのPrefix情報取得に時間が掛かるので、スクリプト結果が表示出来ないとsleepなどで調整が必要となる。
(4)DHCPv6-PDを再取得
![](https://blogimg.goo.ne.jp/user_image/12/2e/b685825613b6afb4defaa2e723fed45b.png)
![](https://blogimg.goo.ne.jp/user_image/16/5d/d681cfd08264e821db1b80887185bb9e.png)
「ホストからルーターへの設定転送」では、管理者権限で得たセッション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
![](https://blogimg.goo.ne.jp/user_image/76/2b/b03ab0f1091b3f1d52413e4275de6cb4.png)
wget -O - --post-data=$'show environment\r\nshow status ipv6 dhcp\r\n' http://nvr500-lan2.familyname/custom/api?password=JYUMON
![](https://blogimg.goo.ne.jp/user_image/03/6e/055f660cad9785d0cf564c5e3bf04b0e.png)
wget -q -O - --post-data="show status ipv6 dhcp" http://nvr500-lan2.familyname/custom/api?password=JYUMON | grep prefix
![](https://blogimg.goo.ne.jp/user_image/53/d4/580ec35f86e8a8ac22ad0fedc3e8713b.png)
(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")
![](https://blogimg.goo.ne.jp/user_image/14/36/9a958d310dea3ab1cba00b63a35d636e.png)
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
![](https://blogimg.goo.ne.jp/user_image/12/2e/b685825613b6afb4defaa2e723fed45b.png)
![](https://blogimg.goo.ne.jp/user_image/16/5d/d681cfd08264e821db1b80887185bb9e.png)