nic
モジュールは、ネットワーク環境を制御するためのモジュールです。
var nic = require('nic');
var nics = nic.enumerate();
console.log( Object.keys( nics ).length + "個のNICが搭載されています" );
var index = 0;
Object.keys( nics ).forEach( function(key) {
console.log( ++ index + "個目は:" + key );
});
var eth0 = nics["ETHERNET"];
if( eth0 ) {
eth0.ifup(); // use DHCP
eth0.ntpdate({ server:"ntp.nict.jp" });
console.log( JSON.stringify( eth0.ifconfig() ) );
console.log( new Date().toString() );
}
ETHERNET
{Nic} Ethernet Interface に対応するNicクラスのインスタンスボードに搭載された NIC 一覧を取得します。(現在、Ethernet Interface のみに対応しています)
var nic = require('nic');
// ★★ 一覧取得
var nics = nic.enumerate();
// 一覧表示
console.log( Object.keys( nics ).length + "個のNICが搭載されています" );
var index = 0;
Object.keys( nics ).forEach( function(key) {
console.log( ++ index + "個目は:" + key );
});
NIC の制御や状態の取得を行うクラスです。
param
{Object} ネットワーク設定。すべての項目を省略する場合、この引数自体を省略可能です。ip
{string} IPアドレス(省略時、DHCP使用)netmask
{string} ネットマスク(省略時、DHCP使用)gateway
{string} ゲートウェイ(省略時、DHCP使用)dns
{string} DNSサーバ(省略可能)true
:接続成功、false
:接続失敗ネットワークへ接続します。
param
を指定しない場合、およびip
, netmask
, gateway
のどれか一つでも省略されている場合はDHCPを使用します。
ip
, netmask
, gateway
が全て指定されている場合は静的IPアドレスを使用します。
dns
はDHCP・静的IPアドレスのどちらを使用する場合でも省略可能です。
var nic = require('nic');
var nics = nic.enumerate();
var eth0 = nics["ETHERNET"];
if( !eth0 ) {
return;
}
// ★★ ネットワークへ接続 (DHCP)
eth0.ifup();
eth0.ifdown();
// ★★ ネットワークへ接続 (静的IPアドレス指定)
eth0.ifup({
ip: "192.168.123.100",
netmask: "255.255.255.0",
gateway: "192.168.123.1",
dns: "8.8.8.8"
});
eth0.ifdown();
true
:切断成功、false
:切断失敗ネットワークから切断します。
var nic = require('nic');
var nics = nic.enumerate();
var eth0 = nics["ETHERNET"];
if( !eth0 ) {
return;
}
eth0.ifup();
// ★★ ネットワークから切断
eth0.ifdown();
NIC
{string} NIC の種類HWaddr
{string}} MACアドレスinet
{string} inetアドレスnetmask
{string} ネットマスクgateway
{string} ゲートウェイNICの状態を取得します。
var nic = require('nic');
var nics = nic.enumerate();
var eth0 = nics["ETHERNET"];
if( !eth0 ) {
return;
}
eth0.ifup();
// ★★ NIC の状態を取得 (接続時)
var conf = eth0.ifconfig();
console.log( JSON.stringify( conf ) );
eth0.ifdown();
// ★★ NIC の状態を取得 (切断時)
conf = eth0.ifconfig();
console.log( JSON.stringify( conf ) );
param
{Object} 時刻同期設定。すべての項目を省略する場合、この引数自体を省略可能です。server
{string} NTPサーバ(省略時:"0.pool.ntp.org"
)port
{number} ポート番号(省略時:123
)timeout
{number} タイムアウト時間(単位:ミリ秒)(省略時:10 * 1000
)true
:時刻同期成功、false
:時刻同期失敗インターネット時刻と同期します。
var nic = require('nic');
var nics = nic.enumerate();
var eth0 = nics["ETHERNET"];
if( !eth0 ) {
return;
}
eth0.ifup();
// ★★ インターネット時刻と同期(デフォルトサーバ "0.pool.ntp.org" 使用)
if( eth0.ntpdate() ) {
console.log( '時刻同期成功', new Date().toString() );
}
else {
console.log( '時刻同期失敗' );
}
// ★★ インターネット時刻と同期(サーバ指定)
if( eth0.ntpdate({ server:"ntp.nict.jp" }) ) {
console.log( '時刻同期成功', new Date().toString() );
}
else {
console.log( '時刻同期失敗' );
}
eth0.ifdown();