node-red上でローカルIPアドレスの値を取得する関数を作ってみました。
最初に ~/.node-red/setting.js の170行目くらいの functionGlobalContext の項目に必要な項目を追加します(コメントを外すだけです。)。
次にコードを書きます。
-------------------------------------code-------------------------
-------------------------------------code-------------------------
参考URL
node.jsでローカルIPアドレスの取得
node.js local IP アドレスを取得したい
最初に ~/.node-red/setting.js の170行目くらいの functionGlobalContext の項目に必要な項目を追加します(コメントを外すだけです。)。
- // Anything in this hash is globally available to all functions.
- // It is accessed as context.global.
- // eg:
- // functionGlobalContext: { os:require('os') }
- // can be accessed in a function block as:
- // context.global.os
- functionGlobalContext: {
- os:require('os'),
- // octalbonescript:require('octalbonescript'),
- // jfive:require("johnny-five"),
- // j5board:require("johnny-five").Board({repl:false})
- },
次にコードを書きます。
-------------------------------------code-------------------------
[{"id":"98c4454e.0650c","type":"function","z":"78174f00.279c9","name":"IPアドレス取得(詳細)","func":"var os = context.global.os;\n\nvar ifacesObj = {}\nifacesObj.ipv4 = [];\nifacesObj.ipv6 = [];\nvar interfaces = os.networkInterfaces();\n\nfor (var dev in interfaces) {\n interfaces[dev].forEach(function(details){\n if (!details.internal){\n switch(details.family){\n case \"IPv4\":\n ifacesObj.ipv4.push({name:dev, address:details.address});\n break;\n case \"IPv6\":\n ifacesObj.ipv6.push({name:dev, address:details.address})\n break;\n }\n }\n });\n}\nmsg.payload = ifacesObj;\nreturn msg;","outputs":1,"noerr":0,"x":299.5,"y":371,"wires":[["d775a21.dbef86"]]},{"id":"d775a21.dbef86","type":"debug","z":"78174f00.279c9","name":"","active":true,"console":"false","complete":"false","x":589.5,"y":368,"wires":[]},{"id":"ce20cf3a.8685e8","type":"inject","z":"78174f00.279c9","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":91.5,"y":370,"wires":[["98c4454e.0650c","d0b13b58.8cbe3"]]},{"id":"d0b13b58.8cbe3","type":"function","z":"78174f00.279c9","name":"IPアドレス取得","func":"var os = context.global.os;\nvar ifaces = os.networkInterfaces();\nvar ipAddress;\n \nObject.keys(ifaces).forEach(function (ifname) {\n ifaces[ifname].forEach(function (iface) {\n \n if ('IPv4' !== iface.family || iface.internal !== false) {\n // skip over internal (i.e. 127.0.0.1) and non-ipv4 addresses\n return;\n }\n \n console.log(ifname, iface.address);\n // en0 192.168.1.NNN\n ipAddress = iface.address;\n \n });\n});\nmsg.payload = ipAddress;\nreturn msg;","outputs":1,"noerr":0,"x":277.5,"y":415,"wires":[["d775a21.dbef86"]]}]
参考URL
node.jsでローカルIPアドレスの取得
node.js local IP アドレスを取得したい
※コメント投稿者のブログIDはブログ作成者のみに通知されます