Osamu Nakamura / GR-PEACH_mbed-os-iotjs

doc/api/nic.html

Committer:
Osamu Nakamura
Date:
2019-07-11
Revision:
1:c3d69f309845

File content as of revision 1:c3d69f309845:

<!DOCTYPE html><html lang="ja"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description"><meta name="keywords"><meta name="robots"><title>GR-PEACH nicモジュール</title><style>@font-face {
  font-family: octicons-link;
  src: url(data:font/woff;charset=utf-8;base64,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) format('woff');
}

.markdown-body {
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  line-height: 1.5;
  color: #24292e;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  font-size: 16px;
  line-height: 1.5;
  word-wrap: break-word;
}

.markdown-body .pl-c {
  color: #6a737d;
}

.markdown-body .pl-c1,
.markdown-body .pl-s .pl-v {
  color: #005cc5;
}

.markdown-body .pl-e,
.markdown-body .pl-en {
  color: #6f42c1;
}

.markdown-body .pl-smi,
.markdown-body .pl-s .pl-s1 {
  color: #24292e;
}

.markdown-body .pl-ent {
  color: #22863a;
}

.markdown-body .pl-k {
  color: #d73a49;
}

.markdown-body .pl-s,
.markdown-body .pl-pds,
.markdown-body .pl-s .pl-pse .pl-s1,
.markdown-body .pl-sr,
.markdown-body .pl-sr .pl-cce,
.markdown-body .pl-sr .pl-sre,
.markdown-body .pl-sr .pl-sra {
  color: #032f62;
}

.markdown-body .pl-v,
.markdown-body .pl-smw {
  color: #e36209;
}

.markdown-body .pl-bu {
  color: #b31d28;
}

.markdown-body .pl-ii {
  color: #fafbfc;
  background-color: #b31d28;
}

.markdown-body .pl-c2 {
  color: #fafbfc;
  background-color: #d73a49;
}

.markdown-body .pl-c2::before {
  content: "^M";
}

.markdown-body .pl-sr .pl-cce {
  font-weight: bold;
  color: #22863a;
}

.markdown-body .pl-ml {
  color: #735c0f;
}

.markdown-body .pl-mh,
.markdown-body .pl-mh .pl-en,
.markdown-body .pl-ms {
  font-weight: bold;
  color: #005cc5;
}

.markdown-body .pl-mi {
  font-style: italic;
  color: #24292e;
}

.markdown-body .pl-mb {
  font-weight: bold;
  color: #24292e;
}

.markdown-body .pl-md {
  color: #b31d28;
  background-color: #ffeef0;
}

.markdown-body .pl-mi1 {
  color: #22863a;
  background-color: #f0fff4;
}

.markdown-body .pl-mc {
  color: #e36209;
  background-color: #ffebda;
}

.markdown-body .pl-mi2 {
  color: #f6f8fa;
  background-color: #005cc5;
}

.markdown-body .pl-mdr {
  font-weight: bold;
  color: #6f42c1;
}

.markdown-body .pl-ba {
  color: #586069;
}

.markdown-body .pl-sg {
  color: #959da5;
}

.markdown-body .pl-corl {
  text-decoration: underline;
  color: #032f62;
}

.markdown-body .octicon {
  display: inline-block;
  vertical-align: text-top;
  fill: currentColor;
}

.markdown-body a {
  background-color: transparent;
}

.markdown-body a:active,
.markdown-body a:hover {
  outline-width: 0;
}

.markdown-body strong {
  font-weight: inherit;
}

.markdown-body strong {
  font-weight: bolder;
}

.markdown-body h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

.markdown-body img {
  border-style: none;
}

.markdown-body code,
.markdown-body kbd,
.markdown-body pre {
  font-family: monospace, monospace;
  font-size: 1em;
}

.markdown-body hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

.markdown-body input {
  font: inherit;
  margin: 0;
}

.markdown-body input {
  overflow: visible;
}

.markdown-body [type="checkbox"] {
  box-sizing: border-box;
  padding: 0;
}

.markdown-body * {
  box-sizing: border-box;
}

.markdown-body input {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

.markdown-body a {
  color: #0366d6;
  text-decoration: none;
}

.markdown-body a:hover {
  text-decoration: underline;
}

.markdown-body strong {
  font-weight: 600;
}

.markdown-body hr {
  height: 0;
  margin: 15px 0;
  overflow: hidden;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #dfe2e5;
}

.markdown-body hr::before {
  display: table;
  content: "";
}

.markdown-body hr::after {
  display: table;
  clear: both;
  content: "";
}

.markdown-body table {
  border-spacing: 0;
  border-collapse: collapse;
}

.markdown-body td,
.markdown-body th {
  padding: 0;
}

.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
  margin-top: 0;
  margin-bottom: 0;
}

.markdown-body h1 {
  font-size: 32px;
  font-weight: 600;
}

.markdown-body h2 {
  font-size: 24px;
  font-weight: 600;
}

.markdown-body h3 {
  font-size: 20px;
  font-weight: 600;
}

.markdown-body h4 {
  font-size: 16px;
  font-weight: 600;
}

.markdown-body h5 {
  font-size: 14px;
  font-weight: 600;
}

.markdown-body h6 {
  font-size: 12px;
  font-weight: 600;
}

.markdown-body p {
  margin-top: 0;
  margin-bottom: 10px;
}

.markdown-body blockquote {
  margin: 0;
}

.markdown-body ul,
.markdown-body ol {
  padding-left: 0;
  margin-top: 0;
  margin-bottom: 0;
}

.markdown-body ol ol,
.markdown-body ul ol {
  list-style-type: lower-roman;
}

.markdown-body ul ul ol,
.markdown-body ul ol ol,
.markdown-body ol ul ol,
.markdown-body ol ol ol {
  list-style-type: lower-alpha;
}

.markdown-body dd {
  margin-left: 0;
}

.markdown-body code {
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
  font-size: 12px;
}

.markdown-body pre {
  margin-top: 0;
  margin-bottom: 0;
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
  font-size: 12px;
}

.markdown-body .octicon {
  vertical-align: text-bottom;
}

.markdown-body .pl-0 {
  padding-left: 0 !important;
}

.markdown-body .pl-1 {
  padding-left: 4px !important;
}

.markdown-body .pl-2 {
  padding-left: 8px !important;
}

.markdown-body .pl-3 {
  padding-left: 16px !important;
}

.markdown-body .pl-4 {
  padding-left: 24px !important;
}

.markdown-body .pl-5 {
  padding-left: 32px !important;
}

.markdown-body .pl-6 {
  padding-left: 40px !important;
}

.markdown-body::before {
  display: table;
  content: "";
}

.markdown-body::after {
  display: table;
  clear: both;
  content: "";
}

.markdown-body>*:first-child {
  margin-top: 0 !important;
}

.markdown-body>*:last-child {
  margin-bottom: 0 !important;
}

.markdown-body a:not([href]) {
  color: inherit;
  text-decoration: none;
}

.markdown-body .anchor {
  float: left;
  padding-right: 4px;
  margin-left: -20px;
  line-height: 1;
}

.markdown-body .anchor:focus {
  outline: none;
}

.markdown-body p,
.markdown-body blockquote,
.markdown-body ul,
.markdown-body ol,
.markdown-body dl,
.markdown-body table,
.markdown-body pre {
  margin-top: 0;
  margin-bottom: 16px;
}

.markdown-body hr {
  height: 0.25em;
  padding: 0;
  margin: 24px 0;
  background-color: #e1e4e8;
  border: 0;
}

.markdown-body blockquote {
  padding: 0 1em;
  color: #6a737d;
  border-left: 0.25em solid #dfe2e5;
}

.markdown-body blockquote>:first-child {
  margin-top: 0;
}

.markdown-body blockquote>:last-child {
  margin-bottom: 0;
}

.markdown-body kbd {
  display: inline-block;
  padding: 3px 5px;
  font-size: 11px;
  line-height: 10px;
  color: #444d56;
  vertical-align: middle;
  background-color: #fafbfc;
  border: solid 1px #c6cbd1;
  border-bottom-color: #959da5;
  border-radius: 3px;
  box-shadow: inset 0 -1px 0 #959da5;
}

.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
  margin-top: 24px;
  margin-bottom: 16px;
  font-weight: 600;
  line-height: 1.25;
}

.markdown-body h1 .octicon-link,
.markdown-body h2 .octicon-link,
.markdown-body h3 .octicon-link,
.markdown-body h4 .octicon-link,
.markdown-body h5 .octicon-link,
.markdown-body h6 .octicon-link {
  color: #1b1f23;
  vertical-align: middle;
  visibility: hidden;
}

.markdown-body h1:hover .anchor,
.markdown-body h2:hover .anchor,
.markdown-body h3:hover .anchor,
.markdown-body h4:hover .anchor,
.markdown-body h5:hover .anchor,
.markdown-body h6:hover .anchor {
  text-decoration: none;
}

.markdown-body h1:hover .anchor .octicon-link,
.markdown-body h2:hover .anchor .octicon-link,
.markdown-body h3:hover .anchor .octicon-link,
.markdown-body h4:hover .anchor .octicon-link,
.markdown-body h5:hover .anchor .octicon-link,
.markdown-body h6:hover .anchor .octicon-link {
  visibility: visible;
}

.markdown-body h1 {
  padding-bottom: 0.3em;
  font-size: 2em;
  border-bottom: 1px solid #eaecef;
}

.markdown-body h2 {
  padding-bottom: 0.3em;
  font-size: 1.5em;
  border-bottom: 1px solid #eaecef;
}

.markdown-body h3 {
  font-size: 1.25em;
}

.markdown-body h4 {
  font-size: 1em;
}

.markdown-body h5 {
  font-size: 0.875em;
}

.markdown-body h6 {
  font-size: 0.85em;
  color: #6a737d;
}

.markdown-body ul,
.markdown-body ol {
  padding-left: 2em;
}

.markdown-body ul ul,
.markdown-body ul ol,
.markdown-body ol ol,
.markdown-body ol ul {
  margin-top: 0;
  margin-bottom: 0;
}

.markdown-body li {
  word-wrap: break-all;
}

.markdown-body li>p {
  margin-top: 16px;
}

.markdown-body li+li {
  margin-top: 0.25em;
}

.markdown-body dl {
  padding: 0;
}

.markdown-body dl dt {
  padding: 0;
  margin-top: 16px;
  font-size: 1em;
  font-style: italic;
  font-weight: 600;
}

.markdown-body dl dd {
  padding: 0 16px;
  margin-bottom: 16px;
}

.markdown-body table {
  display: block;
  width: 100%;
  overflow: auto;
}

.markdown-body table th {
  font-weight: 600;
}

.markdown-body table th,
.markdown-body table td {
  padding: 6px 13px;
  border: 1px solid #dfe2e5;
}

.markdown-body table tr {
  background-color: #fff;
  border-top: 1px solid #c6cbd1;
}

.markdown-body table tr:nth-child(2n) {
  background-color: #f6f8fa;
}

.markdown-body img {
  max-width: 100%;
  box-sizing: content-box;
  background-color: #fff;
}

.markdown-body img[align=right] {
  padding-left: 20px;
}

.markdown-body img[align=left] {
  padding-right: 20px;
}

.markdown-body code {
  padding: 0.2em 0.4em;
  margin: 0;
  font-size: 85%;
  background-color: rgba(27,31,35,0.05);
  border-radius: 3px;
}

.markdown-body pre {
  word-wrap: normal;
}

.markdown-body pre>code {
  padding: 0;
  margin: 0;
  font-size: 100%;
  word-break: normal;
  white-space: pre;
  background: transparent;
  border: 0;
}

.markdown-body .highlight {
  margin-bottom: 16px;
}

.markdown-body .highlight pre {
  margin-bottom: 0;
  word-break: normal;
}

.markdown-body .highlight pre,
.markdown-body pre {
  padding: 16px;
  overflow: auto;
  font-size: 85%;
  line-height: 1.45;
  background-color: #f6f8fa;
  border-radius: 3px;
}

.markdown-body pre code {
  display: inline;
  max-width: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  line-height: inherit;
  word-wrap: normal;
  background-color: transparent;
  border: 0;
}

.markdown-body .full-commit .btn-outline:not(:disabled):hover {
  color: #005cc5;
  border-color: #005cc5;
}

.markdown-body kbd {
  display: inline-block;
  padding: 3px 5px;
  font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
  line-height: 10px;
  color: #444d56;
  vertical-align: middle;
  background-color: #fafbfc;
  border: solid 1px #d1d5da;
  border-bottom-color: #c6cbd1;
  border-radius: 3px;
  box-shadow: inset 0 -1px 0 #c6cbd1;
}

.markdown-body :checked+.radio-label {
  position: relative;
  z-index: 1;
  border-color: #0366d6;
}

.markdown-body .task-list-item {
  list-style-type: none;
}

.markdown-body .task-list-item+.task-list-item {
  margin-top: 3px;
}

.markdown-body .task-list-item input {
  margin: 0 0.2em 0.25em -1.6em;
  vertical-align: middle;
}

.markdown-body hr {
  border-bottom-color: #eee;
}
/*

Sunburst-like style (c) Vasily Polovnyov <vast@whiteants.net>

*/

.hljs {
  display: block;
  overflow-x: auto;
  padding: 0.5em;
  background: #000;
  color: #f8f8f8;
}

.hljs-comment,
.hljs-quote {
  color: #aeaeae;
  font-style: italic;
}

.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
  color: #e28964;
}

.hljs-string {
  color: #65b042;
}

.hljs-subst {
  color: #daefa3;
}

.hljs-regexp,
.hljs-link {
  color: #e9c062;
}

.hljs-title,
.hljs-section,
.hljs-tag,
.hljs-name {
  color: #89bdff;
}

.hljs-class .hljs-title,
.hljs-doctag {
  text-decoration: underline;
}

.hljs-symbol,
.hljs-bullet,
.hljs-number {
  color: #3387cc;
}

.hljs-params,
.hljs-variable,
.hljs-template-variable {
  color: #3e87e3;
}

.hljs-attribute {
  color: #cda869;
}

.hljs-meta {
  color: #8996a8;
}

.hljs-formula {
  background-color: #0e2231;
  color: #f8f8f8;
  font-style: italic;
}

.hljs-addition {
  background-color: #253b22;
  color: #f8f8f8;
}

.hljs-deletion {
  background-color: #420e09;
  color: #f8f8f8;
}

.hljs-selector-class {
  color: #9b703f;
}

.hljs-selector-id {
  color: #8b98ab;
}

.hljs-emphasis {
  font-style: italic;
}

.hljs-strong {
  font-weight: bold;
}
</style></head><body class="markdown-body"><h1 id="gr-peach-nic-nic-">GR-PEACH nicモジュール (nic)</h1>
<p><code>nic</code> モジュールは、ネットワーク環境を制御するためのモジュールです。</p>
<h4 id="-">使用例</h4>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> nic = <span class="hljs-built_in">require</span>(<span class="hljs-string">'nic'</span>);
<span class="hljs-keyword">var</span> nics = nic.enumerate();
<span class="hljs-built_in">console</span>.log( <span class="hljs-built_in">Object</span>.keys( nics ).length + <span class="hljs-string">"個のNICが搭載されています"</span> );
<span class="hljs-keyword">var</span> index = <span class="hljs-number">0</span>;
<span class="hljs-built_in">Object</span>.keys( nics ).forEach( <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">key</span>) </span>{
    <span class="hljs-built_in">console</span>.log( ++ index + <span class="hljs-string">"個目は:"</span> + key );
});

<span class="hljs-keyword">var</span> eth0 = nics[<span class="hljs-string">"ETHERNET"</span>];
<span class="hljs-keyword">if</span>( eth0 ) {
    eth0.ifup();        <span class="hljs-comment">// use DHCP</span>
    eth0.ntpdate({ <span class="hljs-attr">server</span>:<span class="hljs-string">"ntp.nict.jp"</span> });
    <span class="hljs-built_in">console</span>.log( <span class="hljs-built_in">JSON</span>.stringify( eth0.ifconfig() ) );
    <span class="hljs-built_in">console</span>.log( <span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>().toString() );
}
</code></pre>
<h2 id="nic-enumerate-">nic.enumerate()</h2>
<ul>
<li>戻り値: {Array} Nicオブジェクトの一覧を格納した連想配列<ul>
<li><code>ETHERNET</code> {Nic} Ethernet Interface に対応するNicクラスのインスタンス</li>
</ul>
</li>
</ul>
<p>ボードに搭載された NIC 一覧を取得します。(現在、Ethernet Interface のみに対応しています)</p>
<h4 id="-">使用例</h4>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> nic = <span class="hljs-built_in">require</span>(<span class="hljs-string">'nic'</span>);

<span class="hljs-comment">// ★★ 一覧取得</span>
<span class="hljs-keyword">var</span> nics = nic.enumerate();

<span class="hljs-comment">// 一覧表示</span>
<span class="hljs-built_in">console</span>.log( <span class="hljs-built_in">Object</span>.keys( nics ).length + <span class="hljs-string">"個のNICが搭載されています"</span> );
<span class="hljs-keyword">var</span> index = <span class="hljs-number">0</span>;
<span class="hljs-built_in">Object</span>.keys( nics ).forEach( <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">key</span>) </span>{
    <span class="hljs-built_in">console</span>.log( ++ index + <span class="hljs-string">"個目は:"</span> + key );
});
</code></pre>
<h1 id="nic-">Nicクラス</h1>
<p>NIC の制御や状態の取得を行うクラスです。</p>
<h2 id="nic-ifup-param-">nic.ifup([param])</h2>
<ul>
<li><code>param</code> {Object} ネットワーク設定。すべての項目を省略する場合、この引数自体を省略可能です。<ul>
<li><code>ip</code> {string} IPアドレス(省略時、DHCP使用)</li>
<li><code>netmask</code> {string} ネットマスク(省略時、DHCP使用)</li>
<li><code>gateway</code> {string} ゲートウェイ(省略時、DHCP使用)</li>
<li><code>dns</code> {string} DNSサーバ(省略可能)</li>
</ul>
</li>
<li>戻り値: {boolean} <code>true</code>:接続成功、<code>false</code>:接続失敗</li>
</ul>
<p>ネットワークへ接続します。
<code>param</code>を指定しない場合、および<code>ip</code>, <code>netmask</code>, <code>gateway</code>のどれか一つでも省略されている場合はDHCPを使用します。
<code>ip</code>, <code>netmask</code>, <code>gateway</code>が全て指定されている場合は静的IPアドレスを使用します。
<code>dns</code>はDHCP・静的IPアドレスのどちらを使用する場合でも省略可能です。</p>
<h4 id="-">使用例</h4>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> nic = <span class="hljs-built_in">require</span>(<span class="hljs-string">'nic'</span>);
<span class="hljs-keyword">var</span> nics = nic.enumerate();
<span class="hljs-keyword">var</span> eth0 = nics[<span class="hljs-string">"ETHERNET"</span>];
<span class="hljs-keyword">if</span>( !eth0 ) {
    <span class="hljs-keyword">return</span>;
}

<span class="hljs-comment">// ★★ ネットワークへ接続 (DHCP)</span>
eth0.ifup();
eth0.ifdown();

<span class="hljs-comment">// ★★ ネットワークへ接続 (静的IPアドレス指定)</span>
eth0.ifup({
    <span class="hljs-attr">ip</span>: <span class="hljs-string">"192.168.123.100"</span>,
    <span class="hljs-attr">netmask</span>: <span class="hljs-string">"255.255.255.0"</span>,
    <span class="hljs-attr">gateway</span>: <span class="hljs-string">"192.168.123.1"</span>,
    <span class="hljs-attr">dns</span>: <span class="hljs-string">"8.8.8.8"</span>
});
eth0.ifdown();
</code></pre>
<h2 id="nic-ifdown-">nic.ifdown()</h2>
<ul>
<li>戻り値: {boolean} <code>true</code>:切断成功、<code>false</code>:切断失敗</li>
</ul>
<p>ネットワークから切断します。</p>
<h4 id="-">使用例</h4>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> nic = <span class="hljs-built_in">require</span>(<span class="hljs-string">'nic'</span>);
<span class="hljs-keyword">var</span> nics = nic.enumerate();
<span class="hljs-keyword">var</span> eth0 = nics[<span class="hljs-string">"ETHERNET"</span>];
<span class="hljs-keyword">if</span>( !eth0 ) {
    <span class="hljs-keyword">return</span>;
}
eth0.ifup();

<span class="hljs-comment">// ★★ ネットワークから切断</span>
eth0.ifdown();
</code></pre>
<h2 id="nic-ifconfig-">nic.ifconfig()</h2>
<ul>
<li>戻り値: {Object} NIC の状態を格納したオブジェクト<ul>
<li><code>NIC</code> {string} NIC の種類</li>
<li><code>HWaddr</code> {string}} MACアドレス</li>
<li><code>inet</code> {string} inetアドレス</li>
<li><code>netmask</code> {string} ネットマスク</li>
<li><code>gateway</code> {string} ゲートウェイ</li>
</ul>
</li>
</ul>
<p>NICの状態を取得します。</p>
<h4 id="-">使用例</h4>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> nic = <span class="hljs-built_in">require</span>(<span class="hljs-string">'nic'</span>);
<span class="hljs-keyword">var</span> nics = nic.enumerate();
<span class="hljs-keyword">var</span> eth0 = nics[<span class="hljs-string">"ETHERNET"</span>];
<span class="hljs-keyword">if</span>( !eth0 ) {
    <span class="hljs-keyword">return</span>;
}
eth0.ifup();

<span class="hljs-comment">// ★★ NIC の状態を取得 (接続時)</span>
<span class="hljs-keyword">var</span> conf = eth0.ifconfig();
<span class="hljs-built_in">console</span>.log( <span class="hljs-built_in">JSON</span>.stringify( conf ) );

eth0.ifdown();

<span class="hljs-comment">// ★★ NIC の状態を取得 (切断時)</span>
conf = eth0.ifconfig();
<span class="hljs-built_in">console</span>.log( <span class="hljs-built_in">JSON</span>.stringify( conf ) );
</code></pre>
<h2 id="nic-ntpdate-param-">nic.ntpdate([param])</h2>
<ul>
<li><code>param</code> {Object} 時刻同期設定。すべての項目を省略する場合、この引数自体を省略可能です。<ul>
<li><code>server</code> {string} NTPサーバ(省略時:<code>&quot;0.pool.ntp.org&quot;</code>)</li>
<li><code>port</code> {number} ポート番号(省略時:<code>123</code>)</li>
<li><code>timeout</code> {number} タイムアウト時間(単位:ミリ秒)(省略時:<code>10 * 1000</code>)</li>
</ul>
</li>
<li>戻り値: {boolean} <code>true</code>:時刻同期成功、<code>false</code>:時刻同期失敗</li>
</ul>
<p>インターネット時刻と同期します。</p>
<h4 id="-">使用例</h4>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> nic = <span class="hljs-built_in">require</span>(<span class="hljs-string">'nic'</span>);
<span class="hljs-keyword">var</span> nics = nic.enumerate();
<span class="hljs-keyword">var</span> eth0 = nics[<span class="hljs-string">"ETHERNET"</span>];
<span class="hljs-keyword">if</span>( !eth0 ) {
    <span class="hljs-keyword">return</span>;
}
eth0.ifup();

<span class="hljs-comment">// ★★ インターネット時刻と同期(デフォルトサーバ "0.pool.ntp.org" 使用)</span>
<span class="hljs-keyword">if</span>( eth0.ntpdate() ) {
    <span class="hljs-built_in">console</span>.log( <span class="hljs-string">'時刻同期成功'</span>, <span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>().toString() );
}
<span class="hljs-keyword">else</span> {
    <span class="hljs-built_in">console</span>.log( <span class="hljs-string">'時刻同期失敗'</span> );
}

<span class="hljs-comment">// ★★ インターネット時刻と同期(サーバ指定)</span>
<span class="hljs-keyword">if</span>( eth0.ntpdate({ <span class="hljs-attr">server</span>:<span class="hljs-string">"ntp.nict.jp"</span> }) ) {
    <span class="hljs-built_in">console</span>.log( <span class="hljs-string">'時刻同期成功'</span>, <span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>().toString() );
}
<span class="hljs-keyword">else</span> {
    <span class="hljs-built_in">console</span>.log( <span class="hljs-string">'時刻同期失敗'</span> );
}

eth0.ifdown();
</code></pre>
</body></html>