updated website style

This commit is contained in:
Sebastian Hildebrandt 2021-09-23 17:39:23 +02:00
parent b5546135af
commit a6e0a450d8
56 changed files with 19285 additions and 19165 deletions

View File

@ -38,159 +38,160 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Audio</div>
<div class="text">
<p>In this section you will learn how to get information about detected audio devices or interfaces. Results might differ on different platforms as not everything is available/detectable on each platform:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Detected Audio Devices</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.audio(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>audio informatiom</td>
</tr>
<tr>
<td></td>
<td>[0].id</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>internal ID</td>
</tr>
<tr>
<td></td>
<td>[0].name</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>audio name</td>
</tr>
<tr>
<td></td>
<td>[0].manufacturer</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>manufacturer</td>
</tr>
<tr>
<td></td>
<td>[0].revision</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>revision</td>
</tr>
<tr>
<td></td>
<td>[0].driver</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>driver</td>
</tr>
<tr>
<td></td>
<td>[0].default</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>is default</td>
</tr>
<tr>
<td></td>
<td>[0].channel</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>channel e.g. Build-In, HDMI, USB, ...</td>
</tr>
<tr>
<td></td>
<td>[0].type</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>type e.g. Speaker</td>
</tr>
<tr>
<td></td>
<td>[0].in</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>is input channel</td>
</tr>
<tr>
<td></td>
<td>[0].out</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>is output channel</td>
</tr>
<tr>
<td></td>
<td>[0].status</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>status</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Audio</div>
<div class="text">
<p>In this section you will learn how to get information about detected audio devices or interfaces. Results might differ on different platforms as not everything is available/detectable on each platform:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Detected Audio Devices</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.audio(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>audio informatiom</td>
</tr>
<tr>
<td></td>
<td>[0].id</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>internal ID</td>
</tr>
<tr>
<td></td>
<td>[0].name</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>audio name</td>
</tr>
<tr>
<td></td>
<td>[0].manufacturer</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>manufacturer</td>
</tr>
<tr>
<td></td>
<td>[0].revision</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>revision</td>
</tr>
<tr>
<td></td>
<td>[0].driver</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>driver</td>
</tr>
<tr>
<td></td>
<td>[0].default</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>is default</td>
</tr>
<tr>
<td></td>
<td>[0].channel</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>channel e.g. Build-In, HDMI, USB, ...</td>
</tr>
<tr>
<td></td>
<td>[0].type</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>type e.g. Speaker</td>
</tr>
<tr>
<td></td>
<td>[0].in</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>is input channel</td>
</tr>
<tr>
<td></td>
<td>[0].out</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>is output channel</td>
</tr>
<tr>
<td></td>
<td>[0].status</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>status</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.audio().then(data => console.log(data));</code></pre class="example">
<pre class="example">
[
@ -221,17 +222,18 @@ si.audio().then(data => console.log(data));</code></pre class="example">
status: 'online'
}
]</pre>
</tr>
</tbody>
</table>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -275,4 +277,4 @@ si.audio().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -38,209 +38,210 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Battery</div>
<div class="text">
<p>In this section you will learn how to get battery information - if supported by system:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Battery Data</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.battery(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>battery information</td>
</tr>
<tr>
<td></td>
<td>hasBattery</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>indicates presence of battery</td>
</tr>
<tr>
<td></td>
<td>cycleCount</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>numbers of recharges</td>
</tr>
<tr>
<td></td>
<td>isCharging</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>indicates if battery is charging</td>
</tr>
<tr>
<td></td>
<td>designedCapacity</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>designed capacity of battery (mWh)</td>
</tr>
<tr>
<td></td>
<td>maxCapacity</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>max capacity of battery (mWh)</td>
</tr>
<tr>
<td></td>
<td>currentCapacity</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>current capacity of battery (mWh)</td>
</tr>
<tr>
<td></td>
<td>capacityUnit</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>capacity unit (mWh if possible)</td>
</tr>
<tr>
<td></td>
<td>voltage</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>current voltage of battery (V)</td>
</tr>
<tr>
<td></td>
<td>percent</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>charging level in percent</td>
</tr>
<tr>
<td></td>
<td>timeRemaining</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>minutes left (if discharging)</td>
</tr>
<tr>
<td></td>
<td>acConnected</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>AC connected</td>
</tr>
<tr>
<td></td>
<td>type</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>battery type</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>model</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>manufacturer</td>
</tr>
<tr>
<td></td>
<td>serial</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>battery serial</td>
</tr>
<tr>
<td></td>
<td>additionalBatteries[]</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>array of additional batteries</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Battery</div>
<div class="text">
<p>In this section you will learn how to get battery information - if supported by system:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Battery Data</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.battery(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>battery information</td>
</tr>
<tr>
<td></td>
<td>hasBattery</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>indicates presence of battery</td>
</tr>
<tr>
<td></td>
<td>cycleCount</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>numbers of recharges</td>
</tr>
<tr>
<td></td>
<td>isCharging</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>indicates if battery is charging</td>
</tr>
<tr>
<td></td>
<td>designedCapacity</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>designed capacity of battery (mWh)</td>
</tr>
<tr>
<td></td>
<td>maxCapacity</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>max capacity of battery (mWh)</td>
</tr>
<tr>
<td></td>
<td>currentCapacity</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>current capacity of battery (mWh)</td>
</tr>
<tr>
<td></td>
<td>capacityUnit</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>capacity unit (mWh if possible)</td>
</tr>
<tr>
<td></td>
<td>voltage</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>current voltage of battery (V)</td>
</tr>
<tr>
<td></td>
<td>percent</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>charging level in percent</td>
</tr>
<tr>
<td></td>
<td>timeRemaining</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>minutes left (if discharging)</td>
</tr>
<tr>
<td></td>
<td>acConnected</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>AC connected</td>
</tr>
<tr>
<td></td>
<td>type</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>battery type</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>model</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>manufacturer</td>
</tr>
<tr>
<td></td>
<td>serial</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>battery serial</td>
</tr>
<tr>
<td></td>
<td>additionalBatteries[]</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>array of additional batteries</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.battery().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
@ -260,24 +261,25 @@ si.battery().then(data => console.log(data));</code></pre class="example">
manufacturer: 'Apple',
serial: 'F9Y19860Y9AH9XBAX'
}</pre>
</tr>
</tbody>
</table>
<h2>Known issues</h2>
<h4>Windows Battery</h4>
</tr>
</tbody>
</table>
<h2>Known issues</h2>
<h4>Windows Battery</h4>
<p><span class="code">wmic</span> - which is used to determine temperature and battery sometimes needs to be run with admin
privileges. So if you do not get any values, try to run it again with according privileges. If you still do not get any
values, your system might not support this feature.</p>
<p><span class="code">wmic</span> - which is used to determine temperature and battery sometimes needs to be run with admin
privileges. So if you do not get any values, try to run it again with according privileges. If you still do not get any
values, your system might not support this feature.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -321,4 +323,4 @@ si.battery().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -38,129 +38,130 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Bluetooth</div>
<div class="text">
<p>In this section you will learn how to get information about detected bluetooth devices. Results might differ on different platforms as not everything is available/detectable on each platform:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Detected Bluetooth Devices</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.bluetoothDevices(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>bluetooth device informatiom</td>
</tr>
<tr>
<td></td>
<td>[0].device</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>device name</td>
</tr>
<tr>
<td></td>
<td>[0].name</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>name</td>
</tr>
<tr>
<td></td>
<td>[0].macDevice</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>MAC address device</td>
</tr>
<tr>
<td></td>
<td>[0].macHost</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>MAC address host</td>
</tr>
<tr>
<td></td>
<td>[0].batteryPercent</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>battery level percent</td>
</tr>
<tr>
<td></td>
<td>[0].manufacturer</td>
<td></td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>manufacturer</td>
</tr>
<tr>
<td></td>
<td>[0].type</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>type of device</td>
</tr>
<tr>
<td></td>
<td>[0].connected</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>connected</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Bluetooth</div>
<div class="text">
<p>In this section you will learn how to get information about detected bluetooth devices. Results might differ on different platforms as not everything is available/detectable on each platform:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Detected Bluetooth Devices</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.bluetoothDevices(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>bluetooth device informatiom</td>
</tr>
<tr>
<td></td>
<td>[0].device</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>device name</td>
</tr>
<tr>
<td></td>
<td>[0].name</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>name</td>
</tr>
<tr>
<td></td>
<td>[0].macDevice</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>MAC address device</td>
</tr>
<tr>
<td></td>
<td>[0].macHost</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>MAC address host</td>
</tr>
<tr>
<td></td>
<td>[0].batteryPercent</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>battery level percent</td>
</tr>
<tr>
<td></td>
<td>[0].manufacturer</td>
<td></td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>manufacturer</td>
</tr>
<tr>
<td></td>
<td>[0].type</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>type of device</td>
</tr>
<tr>
<td></td>
<td>[0].connected</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>connected</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.bluetoothDevices().then(data => console.log(data));</code></pre class="example">
<pre class="example">
[
@ -185,17 +186,18 @@ si.bluetoothDevices().then(data => console.log(data));</code></pre class="exampl
connected: true
},
]</pre>
</tr>
</tbody>
</table>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -239,4 +241,4 @@ si.bluetoothDevices().then(data => console.log(data));</code></pre class="exampl
</script>
</body>
</html>
</html>

View File

@ -34,210 +34,212 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Major and Breaking Changes</div>
<div class="text">
<h2>Major Changes - Version 5</h2>
<h4>New Functions</h4>
<ul>
<li><span class="code">audio()</span> detailed audio information </li>
<li><span class="code">bluetoothDevices()</span> detailed information detected bluetooth devices</li>
<li><span class="code">printers()</span> detailed printer information </li>
<li><span class="code">usb()</span> detailed USB information</li>
<li><span class="code">wifiInterfaces()</span> detected Wi-Fi interfaces</li>
<li><span class="code">wifiConnections()</span> active Wi-Fi connections</li>
</ul>
<h4>Breaking Changes</h4>
<p><span class="bold">Be aware</span>, that the new version 5.x is <span class="bold">NOT fully backward compatible</span> to version 4.x ...</p>
<p>We had to make <span class="bold">several interface changes</span> to keep systeminformation as consistent as possible. We highly recommend to go through the complete list and adapt your own code to be again compatible to the new version 5:</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Old</th>
<th>New (V5)</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>unsupported values</td>
<td><span class="code">-1</span></td>
<td><span class="code">null</span></td>
<td>values which are unknown or unsupported<br>on platform</td>
</tr>
<tr>
<td><span class="code">battery()</span></td>
<td><span class="code">hasbattery<br>cyclecount<br>ischarging<br>designedcapacity<br>maxcapacity<br>acconnected<br>timeremaining</span></td>
<td><span class="code">hasBattery<br>cycleCount<br>isCharging<br>designedCapacity<br>maxCapacity<br>acConnected<br>timeRemaining</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">blockDevices()</span></td>
<td><span class="code">fstype</span></td>
<td><span class="code">fsType</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">cpu()</span></td>
<td><span class="code">speedmin<br>speedmax</span></td>
<td><span class="code">speedMin<br>speedMax</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">cpu().speed<br>cpu().speedMin<br>cpu().speedMax</span></td>
<td>string values</td>
<td>now returning<br>numerical values</td>
<td>better value handling</td>
</tr>
<tr>
<td><span class="code">cpuCurrentspeed()</span></td>
<td></td>
<td><span class="code">cpuCurrentSpeed()</span></td>
<td>function name changed<br>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">currentLoad()</span></td>
<td><span class="code">avgload<br>currentload<br>currentload_user<br>currentload_system<br>currentload_nice<br>currentload_idle<br>currentload_irq<br>raw_currentload</span></td>
<td><span class="code">avgLoad<br>currentLoad<br>currentLoadUser<br>currentLoadSystem<br>currentLoadNice<br>currentLoadIdle<br>currentLoadIrq<br>rawCurrentLoad</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">dockerContainerStats()</span></td>
<td><span class="code">mem_usage<br>mem_limit<br>mem_percent<br>cpu_percent<br>cpu_stats<br>precpu_stats<br>memory_stats</span></td>
<td><span class="code">memUsage<br>memLimit<br>memPercent<br>cpuPercent<br>cpuStats<br>precpuStats<br>memoryStats</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">dockerContainerProcesses()</span></td>
<td><span class="code">pid_host</span></td>
<td><span class="code">pidHost</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">graphics().display</span></td>
<td><span class="code">pixeldepth<br>resolutionx<br>resolutiony<br>sizex<br>sizey</span></td>
<td><span class="code">pixelDepth<br>resolutionX<br>resolutionY<br>sizeX<br>sizeY</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">networkConnections()</span></td>
<td><span class="code">localaddress<br>localport<br>peeraddress<br>peerport</span></td>
<td><span class="code">localAddress<br>localPort<br>peerAddress<br>peerPort</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">networkInterfaces()</span></td>
<td><span class="code">carrier_changes</span></td>
<td><span class="code">carrierChanges</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">processes()</span></td>
<td><span class="code">mem_vsz<br>mem_rss<br>pcpu<br>pcpuu<br>pcpus<br>pmem</span></td>
<td><span class="code">memVsz<br>memRss<br>cpu<br>cpuu<br>cpus<br>mem</span></td>
<td>pascalCase conformity<br>renamed attributes</td>
</tr>
<tr>
<td><span class="code">processLoad()</span></td>
<td>result as object</td>
<td>result as array of objects</td>
<td>function now allows to provide more than<br>one process (as a comma separated list)</td>
</tr>
<tr>
<td><span class="code">services()</span></td>
<td><span class="code">pcpu<br>pmem</span></td>
<td><span class="code">cpu<br>mem</span></td>
<td>renamed attributes</td>
</tr>
<tr>
<td><span class="code">vbox()</span></td>
<td><span class="code">HPET<br>PAE<br>APIC<br>X2APIC<br>ACPI<br>IOAPIC<br>biosAPICmode<br>TRC</span></td>
<td><span class="code">hpet<br>pae<br>apic<br>x2Apic<br>acpi<br>ioApic<br>biosApicMode<br>rtc</span></td>
<td>pascalCase conformity</td>
</tr>
</tbody>
</table>
<p>I know, these are <span class="bold">a lot of changes</span>, but for the sake of a consistent interface and to be future proof, we think that this was necessary. Thynk you for your understanding.</p>
<h4>Other Improvements and Changes</h4>
<ul>
<li><span class="code">baseboard()</span>: added memMax, memSlots</li>
<li><span class="code">bios()</span>: added language and features (linux)</li>
<li><span class="code">cpu()</span>: extended AMD processor list</li>
<li><span class="code">cpu()</span>: extended socket list (win)</li>
<li><span class="code">cpu()</span>: added <span class="code">virtualization</span> if cpu supports virtualization</li>
<li><span class="code">cpu()</span>: now <span class="code">flags</span> are part of this function</li>
<li><span class="code">cpuTemperature()</span>: added socket and chipset temperature (linux)</li>
<li><span class="code">disksIO()</span>: added <span class="code">waitTime</span>, <span class="code">waitPercent</span> (linux)</li>
<li><span class="code">fsSize()</span>: added <span class="code">available</span></li>
<li><span class="code">fsSize()</span>: improved calculation of <span class="code">used</span></li>
<li><span class="code">getData()</span>: support for passing parameters and filters (see <a href="general.html">section General / getData</a>)</li>
<li><span class="code">graphics()</span>: extended properties macOS</li>
<li><span class="code">graphics()</span>: extended nvidia-smi parsing</li>
<li><span class="code">networkInterfaces()</span>: type detection improved (win - wireless)</li>
<li><span class="code">memLayout()</span>: extended manufacturer list (decoding)</li>
<li><span class="code">memLayout()</span>: added ECC flag</li>
<li><span class="code">osInfo()</span>: better fqdn (win)</li>
<li><span class="code">osinfo()</span>: added <span class="code">hypervizor</span> if hyper-v is enabled (win only)</li>
<li><span class="code">system()</span>: better Raspberry PI detection</li>
<li><span class="code">system()</span>: added <span class="code">virtual</span> and <span class="code">virtualHost</span> (if system is virtual instance)</li>
<li><span class="code">uuid()</span>: better value support</li>
<li><span class="code">uuid()</span>: added MACs</li>
<li><span class="code">uuid()</span>: better Raspberry Pi hardware ID</li>
<li><span class="code">versions()</span>: added bash, zsh, fish, powershell, dotnet</li>
<li><span class="code">Apple M1 Silicon</span> extended support (now everything supported except of cpu temperature)</li>
<li>updated TypeScript definitions </li>
</ul>
<h4>Test Full Version 5 Functionality</h4>
<p>If you want to see all function results on your machine, please <a href="tests.html">head over to Testing section</a>. We implemented a tiny test suite where you can easily go through all functions and test resuls on your machine without coding.<br><br></p>
<h2>Major Changes - Version 4</h2>
<h4>New Functions</h4>
<ul>
<li><span class="code">chassis()</span> chassis information</li>
<li><span class="code">vboxInfo()</span> detailed virtualBox VM information</li>
<li><span class="code">wifiNetworks()</span> detailed information about available wifi networks</li>
</ul>
<h4>Breaking Changes</h4>
<ul>
<li><span class="code">networkStats()</span>: will provide an <strong>array</strong> of stats for all given interfaces. In previous versions only one interface was provided as a parameter. Pass '*' for all interfaces</li>
<li><span class="code">networkStats()</span>: <span class="code">rx</span> and <span class="code">tx</span> changed to <span class="code">rx_bytes</span> and <span class="code">tx_bytes</span></li>
<li><span class="code">dockerContainerStats()</span> will provide an <strong>array</strong> of stats for all given docker containers. In previous versions only one interface was provided as a parameter. Pass '*' for all docker containers</li>
</ul>
<h4>Other Changes</h4>
<ul>
<li><span class="code">system()</span>: optimized system detection (e.g. new Raspberry Pi models, ...)</li>
<li><span class="code">system(), bios(), baseboard()</span>: information also as non-root (linux)</li>
<li><span class="code">graphics()</span>: added pip, pip3, virtualBox, </li>
<li><span class="code">versions()</span>: better controller and display detection, fixes</li>
<li><span class="code">networkInterfaces()</span>: optimization, fixes</li>
<li><span class="code">networkStats()</span> added <span class="code">operstate</span>, <span class="code">type</span>, <span class="code">duplex</span>, <span class="code">mtu</span>, <span class="code">speed</span>, <span class="code">carrierChanges</span></li>
<li>added TypeScript definitions </li>
</ul>
<p><strong>Be aware</strong>, that the new version 4.x is <strong>NOT fully backward compatible</strong> to version 3.x ...</p>
<h2>Major Changes - Version 3</h2>
<ul>
<li>works only with <span class="code">node.js</span> v4.0.0 and above (using now internal ES6 promise function, arrow functions, ...)</li>
<li><strong>Promises</strong>. As you can see in the documentation, you can now also use it in a promise oriented way. But callbacks are still supported.</li>
<li><strong>Async/Await</strong>. Due to the promises support, systeminformation also works perfectly with the `async/await` pattern (available in <span class="code">node.js</span> <strong>v7.6.0</strong> and above). See example in the docs.</li>
</ul>
<br>
<h2>Full Version History</h2>
<p>Full version histrory (every single release version from version 1.x.x to 5.x.x) can be <a href="history.html">viewed here</a></p>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Major and Breaking Changes</div>
<div class="text">
<h2>Major Changes - Version 5</h2>
<h4>New Functions</h4>
<ul>
<li><span class="code">audio()</span> detailed audio information </li>
<li><span class="code">bluetoothDevices()</span> detailed information detected bluetooth devices</li>
<li><span class="code">printers()</span> detailed printer information </li>
<li><span class="code">usb()</span> detailed USB information</li>
<li><span class="code">wifiInterfaces()</span> detected Wi-Fi interfaces</li>
<li><span class="code">wifiConnections()</span> active Wi-Fi connections</li>
</ul>
<h4>Breaking Changes</h4>
<p><span class="bold">Be aware</span>, that the new version 5.x is <span class="bold">NOT fully backward compatible</span> to version 4.x ...</p>
<p>We had to make <span class="bold">several interface changes</span> to keep systeminformation as consistent as possible. We highly recommend to go through the complete list and adapt your own code to be again compatible to the new version 5:</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Old</th>
<th>New (V5)</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>unsupported values</td>
<td><span class="code">-1</span></td>
<td><span class="code">null</span></td>
<td>values which are unknown or unsupported<br>on platform</td>
</tr>
<tr>
<td><span class="code">battery()</span></td>
<td><span class="code">hasbattery<br>cyclecount<br>ischarging<br>designedcapacity<br>maxcapacity<br>acconnected<br>timeremaining</span></td>
<td><span class="code">hasBattery<br>cycleCount<br>isCharging<br>designedCapacity<br>maxCapacity<br>acConnected<br>timeRemaining</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">blockDevices()</span></td>
<td><span class="code">fstype</span></td>
<td><span class="code">fsType</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">cpu()</span></td>
<td><span class="code">speedmin<br>speedmax</span></td>
<td><span class="code">speedMin<br>speedMax</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">cpu().speed<br>cpu().speedMin<br>cpu().speedMax</span></td>
<td>string values</td>
<td>now returning<br>numerical values</td>
<td>better value handling</td>
</tr>
<tr>
<td><span class="code">cpuCurrentspeed()</span></td>
<td></td>
<td><span class="code">cpuCurrentSpeed()</span></td>
<td>function name changed<br>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">currentLoad()</span></td>
<td><span class="code">avgload<br>currentload<br>currentload_user<br>currentload_system<br>currentload_nice<br>currentload_idle<br>currentload_irq<br>raw_currentload</span></td>
<td><span class="code">avgLoad<br>currentLoad<br>currentLoadUser<br>currentLoadSystem<br>currentLoadNice<br>currentLoadIdle<br>currentLoadIrq<br>rawCurrentLoad</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">dockerContainerStats()</span></td>
<td><span class="code">mem_usage<br>mem_limit<br>mem_percent<br>cpu_percent<br>cpu_stats<br>precpu_stats<br>memory_stats</span></td>
<td><span class="code">memUsage<br>memLimit<br>memPercent<br>cpuPercent<br>cpuStats<br>precpuStats<br>memoryStats</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">dockerContainerProcesses()</span></td>
<td><span class="code">pid_host</span></td>
<td><span class="code">pidHost</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">graphics().display</span></td>
<td><span class="code">pixeldepth<br>resolutionx<br>resolutiony<br>sizex<br>sizey</span></td>
<td><span class="code">pixelDepth<br>resolutionX<br>resolutionY<br>sizeX<br>sizeY</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">networkConnections()</span></td>
<td><span class="code">localaddress<br>localport<br>peeraddress<br>peerport</span></td>
<td><span class="code">localAddress<br>localPort<br>peerAddress<br>peerPort</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">networkInterfaces()</span></td>
<td><span class="code">carrier_changes</span></td>
<td><span class="code">carrierChanges</span></td>
<td>pascalCase conformity</td>
</tr>
<tr>
<td><span class="code">processes()</span></td>
<td><span class="code">mem_vsz<br>mem_rss<br>pcpu<br>pcpuu<br>pcpus<br>pmem</span></td>
<td><span class="code">memVsz<br>memRss<br>cpu<br>cpuu<br>cpus<br>mem</span></td>
<td>pascalCase conformity<br>renamed attributes</td>
</tr>
<tr>
<td><span class="code">processLoad()</span></td>
<td>result as object</td>
<td>result as array of objects</td>
<td>function now allows to provide more than<br>one process (as a comma separated list)</td>
</tr>
<tr>
<td><span class="code">services()</span></td>
<td><span class="code">pcpu<br>pmem</span></td>
<td><span class="code">cpu<br>mem</span></td>
<td>renamed attributes</td>
</tr>
<tr>
<td><span class="code">vbox()</span></td>
<td><span class="code">HPET<br>PAE<br>APIC<br>X2APIC<br>ACPI<br>IOAPIC<br>biosAPICmode<br>TRC</span></td>
<td><span class="code">hpet<br>pae<br>apic<br>x2Apic<br>acpi<br>ioApic<br>biosApicMode<br>rtc</span></td>
<td>pascalCase conformity</td>
</tr>
</tbody>
</table>
<p>I know, these are <span class="bold">a lot of changes</span>, but for the sake of a consistent interface and to be future proof, we think that this was necessary. Thynk you for your understanding.</p>
<h4>Other Improvements and Changes</h4>
<ul>
<li><span class="code">baseboard()</span>: added memMax, memSlots</li>
<li><span class="code">bios()</span>: added language and features (linux)</li>
<li><span class="code">cpu()</span>: extended AMD processor list</li>
<li><span class="code">cpu()</span>: extended socket list (win)</li>
<li><span class="code">cpu()</span>: added <span class="code">virtualization</span> if cpu supports virtualization</li>
<li><span class="code">cpu()</span>: now <span class="code">flags</span> are part of this function</li>
<li><span class="code">cpuTemperature()</span>: added socket and chipset temperature (linux)</li>
<li><span class="code">disksIO()</span>: added <span class="code">waitTime</span>, <span class="code">waitPercent</span> (linux)</li>
<li><span class="code">fsSize()</span>: added <span class="code">available</span></li>
<li><span class="code">fsSize()</span>: improved calculation of <span class="code">used</span></li>
<li><span class="code">getData()</span>: support for passing parameters and filters (see <a href="general.html">section General / getData</a>)</li>
<li><span class="code">graphics()</span>: extended properties macOS</li>
<li><span class="code">graphics()</span>: extended nvidia-smi parsing</li>
<li><span class="code">networkInterfaces()</span>: type detection improved (win - wireless)</li>
<li><span class="code">memLayout()</span>: extended manufacturer list (decoding)</li>
<li><span class="code">memLayout()</span>: added ECC flag</li>
<li><span class="code">osInfo()</span>: better fqdn (win)</li>
<li><span class="code">osinfo()</span>: added <span class="code">hypervizor</span> if hyper-v is enabled (win only)</li>
<li><span class="code">system()</span>: better Raspberry PI detection</li>
<li><span class="code">system()</span>: added <span class="code">virtual</span> and <span class="code">virtualHost</span> (if system is virtual instance)</li>
<li><span class="code">uuid()</span>: better value support</li>
<li><span class="code">uuid()</span>: added MACs</li>
<li><span class="code">uuid()</span>: better Raspberry Pi hardware ID</li>
<li><span class="code">versions()</span>: added bash, zsh, fish, powershell, dotnet</li>
<li><span class="code">Apple M1 Silicon</span> extended support (now everything supported except of cpu temperature)</li>
<li>updated TypeScript definitions </li>
</ul>
<h4>Test Full Version 5 Functionality</h4>
<p>If you want to see all function results on your machine, please <a href="tests.html">head over to Testing section</a>. We implemented a tiny test suite where you can easily go through all functions and test resuls on your machine without coding.<br><br></p>
<h2>Major Changes - Version 4</h2>
<h4>New Functions</h4>
<ul>
<li><span class="code">chassis()</span> chassis information</li>
<li><span class="code">vboxInfo()</span> detailed virtualBox VM information</li>
<li><span class="code">wifiNetworks()</span> detailed information about available wifi networks</li>
</ul>
<h4>Breaking Changes</h4>
<ul>
<li><span class="code">networkStats()</span>: will provide an <strong>array</strong> of stats for all given interfaces. In previous versions only one interface was provided as a parameter. Pass '*' for all interfaces</li>
<li><span class="code">networkStats()</span>: <span class="code">rx</span> and <span class="code">tx</span> changed to <span class="code">rx_bytes</span> and <span class="code">tx_bytes</span></li>
<li><span class="code">dockerContainerStats()</span> will provide an <strong>array</strong> of stats for all given docker containers. In previous versions only one interface was provided as a parameter. Pass '*' for all docker containers</li>
</ul>
<h4>Other Changes</h4>
<ul>
<li><span class="code">system()</span>: optimized system detection (e.g. new Raspberry Pi models, ...)</li>
<li><span class="code">system(), bios(), baseboard()</span>: information also as non-root (linux)</li>
<li><span class="code">graphics()</span>: added pip, pip3, virtualBox, </li>
<li><span class="code">versions()</span>: better controller and display detection, fixes</li>
<li><span class="code">networkInterfaces()</span>: optimization, fixes</li>
<li><span class="code">networkStats()</span> added <span class="code">operstate</span>, <span class="code">type</span>, <span class="code">duplex</span>, <span class="code">mtu</span>, <span class="code">speed</span>, <span class="code">carrierChanges</span></li>
<li>added TypeScript definitions </li>
</ul>
<p><strong>Be aware</strong>, that the new version 4.x is <strong>NOT fully backward compatible</strong> to version 3.x ...</p>
<h2>Major Changes - Version 3</h2>
<ul>
<li>works only with <span class="code">node.js</span> v4.0.0 and above (using now internal ES6 promise function, arrow functions, ...)</li>
<li><strong>Promises</strong>. As you can see in the documentation, you can now also use it in a promise oriented way. But callbacks are still supported.</li>
<li><strong>Async/Await</strong>. Due to the promises support, systeminformation also works perfectly with the `async/await` pattern (available in <span class="code">node.js</span> <strong>v7.6.0</strong> and above). See example in the docs.</li>
</ul>
<br>
<h2>Full Version History</h2>
<p>Full version histrory (every single release version from version 1.x.x to 5.x.x) can be <a href="history.html">viewed here</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -282,4 +284,4 @@
</body>
</html>
</html>

View File

@ -34,51 +34,53 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader left">
<div class="title">Contributors</div>
<div class="text">
<p>Many thanks to all contributors. Really appreciate your support!</p>
<ul>
<li>Guillaume Legrain <a href="https://github.com/glegrain" rel="nofollow">glegrain</a></li>
<li>Riccardo Novaglia <a href="https://github.com/richy24" rel="nofollow">richy24</a></li>
<li>Quentin Busuttil <a href="https://github.com/Buzut" rel="nofollow">Buzut</a></li>
<li>lapsio <a href="https://github.com/lapsio" rel="nofollow">lapsio</a></li>
<li>csy <a href="https://github.com/csy1983" rel="nofollow">csy</a></li>
<li>Tiago Roldão <a href="https://github.com/tiagoroldao" rel="nofollow">tiagoroldao</a></li>
<li>dragonjet <a href="https://github.com/dragonjet" rel="nofollow">dragonjet</a></li>
<li>Adam Reis <a href="https://github.com/adamreisnz" rel="nofollow">adamreisnz</a></li>
<li>Jimi M <a href="https://github.com/ItsJimi" rel="nofollow">ItsJimi</a></li>
<li>Git² <a href="https://github.com/GitSquared" rel="nofollow">GitSquared</a></li>
<li>weiyin <a href="https://github.com/weiyin" rel="nofollow">weiyin</a></li>
<li>Jorai Rijsdijk <a href="https://github.com/Erackron" rel="nofollow">Erackron</a></li>
<li>Rasmus Porsager <a href="https://github.com/porsager" rel="nofollow">porsager</a></li>
<li>Nathan Patten <a href="https://github.com/nrpatten" rel="nofollow">nrpatten</a></li>
<li>Juan Campuzano <a href="https://github.com/juancampuzano" rel="nofollow">juancampuzano</a></li>
<li>Ricardo Polo <a href="https://github.com/ricardopolo" rel="nofollow">ricardopolo</a></li>
<li>Miłosz Dźwigała <a href="https://github.com/mily20001" rel="nofollow">mily20001</a></li>
<li>cconley717 <a href="https://github.com/cconley717" rel="nofollow">cconley717</a></li>
<li>Maria Camila Cubides <a href="https://github.com/MariaCamilaCubides" rel="nofollow">MariaCamilaCubides</a></li>
<li>Aleksander Krasnicki <a href="https://github.com/plakak" rel="nofollow">plakak</a></li>
</ul>
<p>OSX Temperature: credits here are going to:</p>
<ul>
<li>Frank Stock <a href="https://github.com/pcafstockf" rel="nofollow">pcafstockf</a> for his work on <a href="https://github.com/pcafstockf/smc-reader" rel="nofollow">smc-reader</a></li>
</ul>
<p>Many thanks also to all who provided help or filed an issue. This really helps improving this package!</p>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader left">
<div class="title">Contributors</div>
<div class="text">
<p>Many thanks to all contributors. Really appreciate your support!</p>
<ul>
<li>Guillaume Legrain <a href="https://github.com/glegrain" rel="nofollow">glegrain</a></li>
<li>Riccardo Novaglia <a href="https://github.com/richy24" rel="nofollow">richy24</a></li>
<li>Quentin Busuttil <a href="https://github.com/Buzut" rel="nofollow">Buzut</a></li>
<li>lapsio <a href="https://github.com/lapsio" rel="nofollow">lapsio</a></li>
<li>csy <a href="https://github.com/csy1983" rel="nofollow">csy</a></li>
<li>Tiago Roldão <a href="https://github.com/tiagoroldao" rel="nofollow">tiagoroldao</a></li>
<li>dragonjet <a href="https://github.com/dragonjet" rel="nofollow">dragonjet</a></li>
<li>Adam Reis <a href="https://github.com/adamreisnz" rel="nofollow">adamreisnz</a></li>
<li>Jimi M <a href="https://github.com/ItsJimi" rel="nofollow">ItsJimi</a></li>
<li>Git² <a href="https://github.com/GitSquared" rel="nofollow">GitSquared</a></li>
<li>weiyin <a href="https://github.com/weiyin" rel="nofollow">weiyin</a></li>
<li>Jorai Rijsdijk <a href="https://github.com/Erackron" rel="nofollow">Erackron</a></li>
<li>Rasmus Porsager <a href="https://github.com/porsager" rel="nofollow">porsager</a></li>
<li>Nathan Patten <a href="https://github.com/nrpatten" rel="nofollow">nrpatten</a></li>
<li>Juan Campuzano <a href="https://github.com/juancampuzano" rel="nofollow">juancampuzano</a></li>
<li>Ricardo Polo <a href="https://github.com/ricardopolo" rel="nofollow">ricardopolo</a></li>
<li>Miłosz Dźwigała <a href="https://github.com/mily20001" rel="nofollow">mily20001</a></li>
<li>cconley717 <a href="https://github.com/cconley717" rel="nofollow">cconley717</a></li>
<li>Maria Camila Cubides <a href="https://github.com/MariaCamilaCubides" rel="nofollow">MariaCamilaCubides</a></li>
<li>Aleksander Krasnicki <a href="https://github.com/plakak" rel="nofollow">plakak</a></li>
</ul>
<p>OSX Temperature: credits here are going to:</p>
<ul>
<li>Frank Stock <a href="https://github.com/pcafstockf" rel="nofollow">pcafstockf</a> for his work on <a href="https://github.com/pcafstockf/smc-reader" rel="nofollow">smc-reader</a></li>
</ul>
<p>Many thanks also to all who provided help or filed an issue. This really helps improving this package!</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -122,4 +124,4 @@
</script>
</body>
</html>
</html>

View File

@ -34,65 +34,67 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Copyright Information</div>
</div>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="row">
<div class="col-12 sectionheader">
<div>&nbsp;</div>
<h4>Software:</h4>
<div class="text">&copy; 2021 Sebstian Hildebrandt, <a href="https://github.com/sebhildebrandt/"> <i class="fab fa-github"></i> sebhildebrandt</a>, <a href="https://www.plus-innovations.com"><i class="fal fa-globe"></i> +innovations</a></div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Copyright Information</div>
</div>
</div>
<div class="row">
<div class="col-12 sectionheader">
<div>&nbsp;</div>
<h4>Software:</h4>
<div class="text">&copy; 2021 Sebstian Hildebrandt, <a href="https://github.com/sebhildebrandt/"> <i class="fab fa-github"></i> sebhildebrandt</a>, <a href="https://www.plus-innovations.com"><i class="fal fa-globe"></i> +innovations</a></div>
</div>
</div>
</div>
<div class="row">
<div class="col-12 sectionheader">
<div class="text">&nbsp;</div>
<h4>Website:</h4>
<div class="text">Concept, design, documentation &copy; 2021 Sebstian Hildebrandt, <a href="https://www.plus-innovations.com"><i class="fal fa-globe"></i> +innovations</a>, All rights reserved.<br>If you want to copy this website design or concept for your own project, please ask for permission.</div>
<div class="row">
<div class="col-12 sectionheader">
<div class="text">&nbsp;</div>
<h4>Website:</h4>
<div class="text">Concept, design, documentation &copy; 2021 Sebstian Hildebrandt, <a href="https://www.plus-innovations.com"><i class="fal fa-globe"></i> +innovations</a>, All rights reserved.<br>If you want to copy this website design or concept for your own project, please ask for permission.</div>
</div>
</div>
</div>
<div class="row">
<div class="col-12 sectionheader">
<div class="text">&nbsp;</div>
<h4>Photos:</h4>
<div class="text">Luan Gjokaj <a href="https://unsplash.com/@luangjokaj">@luangjokaj (unsplash)</a></div>
<div class="row">
<div class="col-12 sectionheader">
<div class="text">&nbsp;</div>
<h4>Photos:</h4>
<div class="text">Luan Gjokaj <a href="https://unsplash.com/@luangjokaj">@luangjokaj (unsplash)</a></div>
</div>
</div>
</div>
<div class="row">
<div class="col-12 sectionheader">
<div class="title">License <img src="https://img.shields.io/badge/license-MIT-blue.svg?style=for-the-badge" alt="MIT license" /></div>
<div class="text">
<p>Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:</p>
<p>The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.</p>
<p>THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.</p>
<div class="row">
<div class="col-12 sectionheader">
<div class="title">License <img src="https://img.shields.io/badge/license-MIT-blue.svg?style=for-the-badge" alt="MIT license" /></div>
<div class="text">
<p>Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:</p>
<p>The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.</p>
<p>THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -136,4 +138,4 @@
</script>
</body>
</html>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -38,128 +38,129 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">General</div>
<div class="text">
<p>In this section you will learn how to get general systeminformation data. We will also cover the "get" and "get-all" functions to get partial or all data with one single call.</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Lib-Version and Time/Timezone</h2>
<p>The first two functions just give back systeminformation library version number and time/timezone information of your machine. These are the only two functions not returning a promise (so they are not async functions):</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">General</div>
<div class="text">
<p>In this section you will learn how to get general systeminformation data. We will also cover the "get" and "get-all" functions to get partial or all data with one single call.</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Lib-Version and Time/Timezone</h2>
<p>The first two functions just give back systeminformation library version number and time/timezone information of your machine. These are the only two functions not returning a promise (so they are not async functions):</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.version()</td>
<td>: string</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>lib version (no callback/promise)</td>
</tr>
<tr>
<td>si.time()</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>object (no callback/promise) with:</td>
</tr>
<tr>
<td></td>
<td>current</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>local (server) time</td>
</tr>
<tr>
<td></td>
<td>uptime</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>uptime in number of seconds</td>
</tr>
<tr>
<td></td>
<td>timezone</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>e.g. GMT+0200</td>
</tr>
<tr>
<td></td>
<td>timezoneName</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>e.g. CEST</td>
</tr>
</tbody>
</table>
<p>Keep in mind, that there is another function <span class="code">si.versions()</span> that will return versions of other system libraries and software packages</p>
<h2>Get Defined Result Object</h2>
<p>Normally you would call each of the functions (where you want to get detailed system information) seperately. The docs pages contain a full reference (with examples) for each available function. But there is also another really handy way to get a self-defined result object in one single call:</p>
<p>The <span class="code">si.get()</span> function is an alternative, where you can obtain several system information data in one call. You can define a json object which represents the data structure you are expecting and the <span class="code">si.get()</span> call will then return all of the requested data in a single result object</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.version()</td>
<td>: string</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>lib version (no callback/promise)</td>
</tr>
<tr>
<td>si.time()</td>
<td>si.get(valueObject,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>object (no callback/promise) with:</td>
<td>get partial data at once<br>Specify return object for all<br>values that should be returned:</td>
</tr>
<tr>
<tr class="example">
<td></td>
<td>current</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>local (server) time</td>
</tr>
<tr>
<td></td>
<td>uptime</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>uptime in number of seconds</td>
</tr>
<tr>
<td></td>
<td>timezone</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>e.g. GMT+0200</td>
</tr>
<tr>
<td></td>
<td>timezoneName</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>e.g. CEST</td>
</tr>
</tbody>
</table>
<p>Keep in mind, that there is another function <span class="code">si.versions()</span> that will return versions of other system libraries and software packages</p>
<h2>Get Defined Result Object</h2>
<p>Normally you would call each of the functions (where you want to get detailed system information) seperately. The docs pages contain a full reference (with examples) for each available function. But there is also another really handy way to get a self-defined result object in one single call:</p>
<p>The <span class="code">si.get()</span> function is an alternative, where you can obtain several system information data in one call. You can define a json object which represents the data structure you are expecting and the <span class="code">si.get()</span> call will then return all of the requested data in a single result object</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tr>
<td>si.get(valueObject,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>get partial data at once<br>Specify return object for all<br>values that should be returned:</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
// define all values, you want to get back
valueObject = {
@ -202,40 +203,40 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
}
}
</pre>
</tr>
</tbody>
</table>
<p>The key names of the <span class="code">valueObject</span> must be exactly the same as the representing function within systeminformation.</p>
<h3>Providing parameters to the get() function</h3>
<p>Now you can also provide parameters to get() functions (where needed). Just pass the parameters in parentheses right after the wanted keys: have a look at the following example:</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tr>
<td>si.get(valueObject,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>example with parameters:<br>value in paretheses goes as parameter<br>to the given function:</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tbody>
</table>
<p>The key names of the <span class="code">valueObject</span> must be exactly the same as the representing function within systeminformation.</p>
<h3>Providing parameters to the get() function</h3>
<p>Now you can also provide parameters to get() functions (where needed). Just pass the parameters in parentheses right after the wanted keys: have a look at the following example:</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tr>
<td>si.get(valueObject,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>example with parameters:<br>value in paretheses goes as parameter<br>to the given function:</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
// define all values, you want to get back
// here the value in paretheses goes as a parameter
@ -257,39 +258,39 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
}
}
</pre>
</tr>
</tbody>
</table>
<h3>Filter results in get() function</h3>
<p>You can get even further: if the desired result object is an array, you can filter the object to get only the wanted array item: have a look at the following example:</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tr>
<td>si.get(valueObject,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>example with filter:<br>add a pipe symbol with the filter definition<br>to the given function:</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tbody>
</table>
<h3>Filter results in get() function</h3>
<p>You can get even further: if the desired result object is an array, you can filter the object to get only the wanted array item: have a look at the following example:</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tr>
<td>si.get(valueObject,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>example with filter:<br>add a pipe symbol with the filter definition<br>to the given function:</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
// define all values, you want to get back
// here after the keys we define a filter (pipe symbol after the keys)
@ -309,69 +310,70 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
]
}
</pre>
</tr>
</tbody>
</table>
<h2>Get All At Once</h2>
<p>The following three functions <span class="code">si.getStaticData()</span>, <span class="code">si.getDynamicData()</span> and <span class="code">si.getAllData()</span> will return most of the available data in a single result object:</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.getStaticData(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>all static data at once</td>
</tr>
<tr>
<td>si.getDynamicData(srv,iface,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>all dynamic data at once<br>Specify services and interfaces to monitor<br>Defaults to first external network interface<br>Pass "*" for ALL services (linux/win only)<br>Pass "*" for ALL network interfaces</td>
</tr>
<tr>
<td>si.getAllData(srv,iface,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>all data at once<br>Specify services and interfaces to monitor<br>Defaults to first external network interface<br>Pass "*" for ALL services (linux/win only)<br>Pass "*" for ALL network interfaces</td>
</tr>
</tbody>
</table>
<p><strong>Static data</strong> is all hardware related (or more or less constant) data like system, baseboard, bios, OS, versions, cpu, network interfces, memory and disk layout</p>
<p><strong>Dynamic data</strong> will return user, cpu-speed, load, processes, services, temperature, file system, network and disk stats, ... </p>
<p>As not all funtions are supported in each operating system the result object might be different in each OS.</p>
<p><strong>ATTENTION</strong>: Use this only if you really need ALL information. Especially on Windows this can take really long (up to 20 seconds) because the underlying <span class="code">WMIC</span> command is very slow when using it the first time.</p>
</tbody>
</table>
<h2>Get All At Once</h2>
<p>The following three functions <span class="code">si.getStaticData()</span>, <span class="code">si.getDynamicData()</span> and <span class="code">si.getAllData()</span> will return most of the available data in a single result object:</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.getStaticData(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>all static data at once</td>
</tr>
<tr>
<td>si.getDynamicData(srv,iface,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>all dynamic data at once<br>Specify services and interfaces to monitor<br>Defaults to first external network interface<br>Pass "*" for ALL services (linux/win only)<br>Pass "*" for ALL network interfaces</td>
</tr>
<tr>
<td>si.getAllData(srv,iface,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>all data at once<br>Specify services and interfaces to monitor<br>Defaults to first external network interface<br>Pass "*" for ALL services (linux/win only)<br>Pass "*" for ALL network interfaces</td>
</tr>
</tbody>
</table>
<p><strong>Static data</strong> is all hardware related (or more or less constant) data like system, baseboard, bios, OS, versions, cpu, network interfces, memory and disk layout</p>
<p><strong>Dynamic data</strong> will return user, cpu-speed, load, processes, services, temperature, file system, network and disk stats, ... </p>
<p>As not all funtions are supported in each operating system the result object might be different in each OS.</p>
<p><strong>ATTENTION</strong>: Use this only if you really need ALL information. Especially on Windows this can take really long (up to 20 seconds) because the underlying <span class="code">WMIC</span> command is very slow when using it the first time.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -415,4 +417,4 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
</script>
</body>
</html>
</html>

View File

@ -38,50 +38,51 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Quick Start</div>
<div class="text">
<p>Lightweight collection of 50+ functions to retrieve detailed hardware, system and OS information.</p>
<ul>
<li>simple to use</li>
<li>get detailed information about system, cpu, baseboard, battery, memory, disks/filesystem, network, docker, software, services and processes</li>
<li>supports Linux, macOS, partial Windows, FreeBSD, OpenBSD, NetBSD and SunOS support</li>
<li>no npm dependencies</li>
</ul>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Quick Start</div>
<div class="text">
<p>Lightweight collection of 50+ functions to retrieve detailed hardware, system and OS information.</p>
<ul>
<li>simple to use</li>
<li>get detailed information about system, cpu, baseboard, battery, memory, disks/filesystem, network, docker, software, services and processes</li>
<li>supports Linux, macOS, partial Windows, FreeBSD, OpenBSD, NetBSD and SunOS support</li>
<li>no npm dependencies</li>
</ul>
<h2>Core Concept</h2>
<p><a href="https://nodejs.org/en/" rel="nofollow">Node.js</a> comes with some basic OS information, but I always wanted a little more. So I came up to write this
little library. This library is still work in progress. It requires node.js version 4.0 and above.</p>
<h2>Core Concept</h2>
<p><a href="https://nodejs.org/en/" rel="nofollow">Node.js</a> comes with some basic OS information, but I always wanted a little more. So I came up to write this
little library. This library is still work in progress. It requires node.js version 4.0 and above.</p>
<p>I was able to test it on several Debian, Raspbian, Ubuntu distributions as well as macOS (Mavericks, Yosemite, El Captain, Sierra, High Sierra, Mojave, Catalina, Big Sur) and some Windows 7, Windows 8, Windows 10, FreeBSD, OpenBSD, NetBSD and SunOS machines.
Not all functions are supported on all operating systems. Have a look at the function reference in the docs to get further details.</p>
<p>If you have comments, suggestions &amp; reports, please feel free to contact me on <a href="https://github.com/sebhildebrandt/systeminformation/issues">github</a>!</p>
<p>I also created a nice little command line tool called <a href="https://github.com/sebhildebrandt/mmon" rel="nofollow">mmon</a> (micro-monitor) for Linux and macOS, also available via <a href="https://github.com/sebhildebrandt/mmon" rel="nofollow">github</a> and <a href="https://npmjs.org/package/mmon" rel="nofollow">npm</a></p>
<p>I was able to test it on several Debian, Raspbian, Ubuntu distributions as well as macOS (Mavericks, Yosemite, El Captain, Sierra, High Sierra, Mojave, Catalina, Big Sur) and some Windows 7, Windows 8, Windows 10, FreeBSD, OpenBSD, NetBSD and SunOS machines.
Not all functions are supported on all operating systems. Have a look at the function reference in the docs to get further details.</p>
<p>If you have comments, suggestions &amp; reports, please feel free to contact me on <a href="https://github.com/sebhildebrandt/systeminformation/issues">github</a>!</p>
<p>I also created a nice little command line tool called <a href="https://github.com/sebhildebrandt/mmon" rel="nofollow">mmon</a> (micro-monitor) for Linux and macOS, also available via <a href="https://github.com/sebhildebrandt/mmon" rel="nofollow">github</a> and <a href="https://npmjs.org/package/mmon" rel="nofollow">npm</a></p>
<h4>Attention:</h4>
<p>This library is supposed to be used as a <a href="https://nodejs.org/en/" rel="nofollow">node.js</a> backend/server-side library and will definitely not work within a browser.</p>
<h4>Attention:</h4>
<p>This library is supposed to be used as a <a href="https://nodejs.org/en/" rel="nofollow">node.js</a> backend/server-side library and will definitely not work within a browser.</p>
<h2>Installation</h2>
<pre>$ npm install systeminformation --save</pre>
<h2>Usage</h2>
<p>All functions (except <span class="code">version</span> and <span class="code">time</span>) are implemented as asynchronous functions. Here a small example how to use them:</p>
<pre><code class="js">const si = require('systeminformation');
<h2>Installation</h2>
<pre>$ npm install systeminformation --save</pre>
<h2>Usage</h2>
<p>All functions (except <span class="code">version</span> and <span class="code">time</span>) are implemented as asynchronous functions. Here a small example how to use them:</p>
<pre><code class="js">const si = require('systeminformation');
// promises style - new since version 3
si.cpu()
.then(data => console.log(data))
.catch(error => console.error(error));
</code></pre>
<h2>Callback, Promises, Async Await</h2>
<p>Remember: all functions (except <span class="code">version</span> and <span class="code">time</span>) are implemented as asynchronous functions! There are now three ways to consume them:</p>
<p class="bold">Callback Style</p>
<pre><code class="js">const si = require('systeminformation');
<h2>Callback, Promises, Async Await</h2>
<p>Remember: all functions (except <span class="code">version</span> and <span class="code">time</span>) are implemented as asynchronous functions! There are now three ways to consume them:</p>
<p class="bold">Callback Style</p>
<pre><code class="js">const si = require('systeminformation');
si.cpu(function(data) {
console.log('CPU Information:');
@ -92,10 +93,10 @@ si.cpu(function(data) {
console.log('- physical cores: ' + data.physicalCores);
console.log('...');
})</code></pre><br>
<p class="bold">Promise Style</p>
<p class="bold">Promise Style</p>
<p>When omitting callback parameter (cb), then you can use all function in a promise oriented way. All functions (exept of <span class="code">version</span> and <span class="code">time</span>) are returning a promise, that you can consume:</p>
<pre><code class="js">const si = require('systeminformation');
<p>When omitting callback parameter (cb), then you can use all function in a promise oriented way. All functions (exept of <span class="code">version</span> and <span class="code">time</span>) are returning a promise, that you can consume:</p>
<pre><code class="js">const si = require('systeminformation');
si.cpu()
.then(data => {
@ -108,9 +109,9 @@ si.cpu()
console.log('...');
})
.catch(error => console.error(error));</code></pre><br>
<p class="bold">Async/Await Style</p>
<p>Since node v7.6 you can also use the async / await pattern. The above example would then look like this:</p>
<pre><code class="js">const si = require('systeminformation');
<p class="bold">Async/Await Style</p>
<p>Since node v7.6 you can also use the async / await pattern. The above example would then look like this:</p>
<pre><code class="js">const si = require('systeminformation');
async function cpuData() {
try {
@ -126,16 +127,17 @@ async function cpuData() {
console.log(e)
}
}</code></pre><br>
<h2>Issues</h2>
<p>If you discover some empty or incorrect values, please be sure to first have a look at the <a href="issues.html">Known Issues</a> section.</p>
<h2>Issues</h2>
<p>If you discover some empty or incorrect values, please be sure to first have a look at the <a href="issues.html">Known Issues</a> section.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -179,4 +181,4 @@ async function cpuData() {
</script>
</body>
</html>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -180,179 +180,183 @@
</div>
</header>
<section class="container quickstart">
<div class="row">
<div class="col-12 sectionheader index">
<div class="title">Overview</div>
<div class="subtitle">Node.js system information package. Lightweight collection of 50+ functions to retrieve detailed hardware, system and OS information. For Linux, macOS, partial Windows, FreeBSD, OpenBSD, NetBSD and SunOS support. Dependency free.</div>
<div class="npmicons">
<a href="https://npmjs.org/package/systeminformation" rel="nofollow"><img src="https://camo.githubusercontent.com/df25636cbefadf18ca1532e3bdcd0d2794235e19/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f73797374656d696e666f726d6174696f6e2e7376673f7374796c653d666c61742d737175617265" alt="NPM Version" data-canonical-src="https://img.shields.io/npm/v/systeminformation.svg?style=flat-square" style="max-width:100%;"></a>
<a href="https://systeminformation.io" rel="nofollow"><img src="assets/no-dependencies.svg" alt="no dependencies"></a>
<a href="https://lgtm.com/projects/g/sebhildebrandt/systeminformation/context:javascript" rel="nofollow"><img src="https://camo.githubusercontent.com/08409d6fb3794545416e1a40ca75172b54d34692/68747470733a2f2f696d672e736869656c64732e696f2f6c67746d2f67726164652f6a6176617363726970742f672f73656268696c64656272616e64742f73797374656d696e666f726d6174696f6e2e7376673f7374796c653d666c61742d737175617265" alt="Code Quality: Javascript" data-canonical-src="https://img.shields.io/lgtm/grade/javascript/g/sebhildebrandt/systeminformation.svg?style=flat-square" style="max-width:100%;"></a>
<a href="https://lgtm.com/projects/g/sebhildebrandt/systeminformation/alerts" rel="nofollow"><img src="https://camo.githubusercontent.com/66428127fdde80fc8247a0c1df4c651f3a6b1c0a/68747470733a2f2f696d672e736869656c64732e696f2f6c67746d2f616c657274732f672f73656268696c64656272616e64742f73797374656d696e666f726d6174696f6e2e7376673f7374796c653d666c61742d737175617265" alt="Total alerts" data-canonical-src="https://img.shields.io/lgtm/alerts/g/sebhildebrandt/systeminformation.svg?style=flat-square" style="max-width:100%;"></a>
<a href="https://github.com/sebhildebrandt/systeminformation/blob/master/LICENSE"><img src="https://camo.githubusercontent.com/4b5966a2a252ee0f241a1e03b13417178eb4964f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c61742d737175617265" alt="MIT license" data-canonical-src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" style="max-width:100%;"></a>
</div>
<div class="text larger"><span class="warning">Security issues:</span> Please have a look at our <a href="../security.html">security advisories</a>.</div>
<div class="container-fluid">
<section class="container quickstart">
<div class="row">
<div class="col-12 sectionheader index">
<div class="title">Overview</div>
<div class="subtitle">Node.js system information package. Lightweight collection of 50+ functions to retrieve detailed hardware, system and OS information. For Linux, macOS, partial Windows, FreeBSD, OpenBSD, NetBSD and SunOS support. Dependency free.</div>
<div class="npmicons">
<a href="https://npmjs.org/package/systeminformation" rel="nofollow"><img src="https://camo.githubusercontent.com/df25636cbefadf18ca1532e3bdcd0d2794235e19/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f73797374656d696e666f726d6174696f6e2e7376673f7374796c653d666c61742d737175617265" alt="NPM Version" data-canonical-src="https://img.shields.io/npm/v/systeminformation.svg?style=flat-square" style="max-width:100%;"></a>
<a href="https://systeminformation.io" rel="nofollow"><img src="assets/no-dependencies.svg" alt="no dependencies"></a>
<a href="https://lgtm.com/projects/g/sebhildebrandt/systeminformation/context:javascript" rel="nofollow"><img src="https://camo.githubusercontent.com/08409d6fb3794545416e1a40ca75172b54d34692/68747470733a2f2f696d672e736869656c64732e696f2f6c67746d2f67726164652f6a6176617363726970742f672f73656268696c64656272616e64742f73797374656d696e666f726d6174696f6e2e7376673f7374796c653d666c61742d737175617265" alt="Code Quality: Javascript" data-canonical-src="https://img.shields.io/lgtm/grade/javascript/g/sebhildebrandt/systeminformation.svg?style=flat-square" style="max-width:100%;"></a>
<a href="https://lgtm.com/projects/g/sebhildebrandt/systeminformation/alerts" rel="nofollow"><img src="https://camo.githubusercontent.com/66428127fdde80fc8247a0c1df4c651f3a6b1c0a/68747470733a2f2f696d672e736869656c64732e696f2f6c67746d2f616c657274732f672f73656268696c64656272616e64742f73797374656d696e666f726d6174696f6e2e7376673f7374796c653d666c61742d737175617265" alt="Total alerts" data-canonical-src="https://img.shields.io/lgtm/alerts/g/sebhildebrandt/systeminformation.svg?style=flat-square" style="max-width:100%;"></a>
<a href="https://github.com/sebhildebrandt/systeminformation/blob/master/LICENSE"><img src="https://camo.githubusercontent.com/4b5966a2a252ee0f241a1e03b13417178eb4964f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c61742d737175617265" alt="MIT license" data-canonical-src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" style="max-width:100%;"></a>
</div>
<div class="text larger"><span class="warning">Security issues:</span> Please have a look at our <a href="../security.html">security advisories</a>.</div>
</div>
</div>
</div>
<div class="row justify-content-center sectionheader index">
<div class="col-8">
<hr>
<div class="row justify-content-center sectionheader index">
<div class="col-8">
<hr>
</div>
</div>
</div>
<div class="row number-section">
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
<div class="numbers">14,645</div>
<div class="title">Lines of code</div>
<div class="row number-section">
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
<div class="numbers">14,654</div>
<div class="title">Lines of code</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
<div id="downloads" class="numbers">...</div>
<div class="title">Downloads last month</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
<div class="numbers">477</div>
<div class="title">Dependents</div>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
<div id="downloads" class="numbers">...</div>
<div class="title">Downloads last month</div>
<div class="row justify-content-center sectionheader index">
<div class="col-8">
<hr>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
<div class="numbers">476</div>
<div class="title">Dependents</div>
<div class="row" id="docs">
<div class="col-12 sectionheader index">
<div class="title">Documentation</div>
<div class="subtitle">Detailed documentation and reference for version 5.x.x</div>
<div class="title-small">Breaking Changes - Version 5</div>
<div class="text">We made a lot of improvements and changes in the new version. <span class="bold">Version 5 is NOT fully backward compatible to version 4!</span> Be aware, there are some breaking changes. Please refer to the <a href="changes.html">Version 5 - Changes</a> page to see a full documentation of all changes you should have a look on.</div>
<div class="text larger"><span class="bold">Version 4 documentation</span> can be found <a href="v4/index.html">here</a>.</div>
</div>
</div>
</div>
<div class="row justify-content-center sectionheader index">
<div class="col-8">
<hr>
<div class="row index">
<a href="gettingstarted.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-download"></i></div>
<div class="icontitle">Quick Start</div>
</div>
</a>
<a href="general.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-th-list"></i></div>
<div class="icontitle">General</div>
</div>
</a>
<a href="system.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-server"></i></div>
<div class="icontitle">System</div>
</div>
</a>
<a href="cpu.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-microchip"></i></div>
<div class="icontitle">CPU</div>
</div>
</a>
<a href="memory.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-memory"></i></div>
<div class="icontitle">Memory</div>
</div>
</a>
<a href="battery.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-battery-half"></i></div>
<div class="icontitle">Battery</div>
</div>
</a>
<a href="graphics.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-desktop"></i></div>
<div class="icontitle">Graphics</div>
</div>
</a>
<a href="os.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-window"></i></div>
<div class="icontitle">OS</div>
</div>
</a>
<a href="processes.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-chart-line"></i></div>
<div class="icontitle">Process/Service</div>
</div>
</a>
<a href="filesystem.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-hdd"></i></div>
<div class="icontitle">Disks / FS</div>
</div>
</a>
<a href="usb.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fab fa-usb"></i></div>
<div class="icontitle">USB</div>
</div>
</a>
<a href="printer.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-print"></i></div>
<div class="icontitle">Printer</div>
</div>
</a>
<a href="audio.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-volume"></i></div>
<div class="icontitle">Audio</div>
</div>
</a>
<a href="network.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-network-wired"></i></div>
<div class="icontitle">Network</div>
</div>
</a>
<a href="wifi.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-wifi"></i></div>
<div class="icontitle">Wifi</div>
</div>
</a>
<a href="bluetooth.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fab fa-bluetooth"></i></div>
<div class="icontitle">Bluetooth</div>
</div>
</a>
<a href="docker.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fab fa-docker"></i></div>
<div class="icontitle">Docker</div>
</div>
</a>
<a href="vbox.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-box-open"></i></div>
<div class="icontitle">Virtual Box</div>
</div>
</a>
</div>
</div>
<div class="row" id="docs">
<div class="col-12 sectionheader index">
<div class="title">Documentation</div>
<div class="subtitle">Detailed documentation and reference for version 5.x.x</div>
<div class="title-small">Breaking Changes - Version 5</div>
<div class="text">We made a lot of improvements and changes in the new version. <span class="bold">Version 5 is NOT fully backward compatible to version 4!</span> Be aware, there are some breaking changes. Please refer to the <a href="changes.html">Version 5 - Changes</a> page to see a full documentation of all changes you should have a look on.</div>
<div class="text larger"><span class="bold">Version 4 documentation</span> can be found <a href="v4/index.html">here</a>.</div>
<div class="row justify-content-center sectionheader index">
<div class="col-8">
<hr>
</div>
</div>
</div>
<div class="row index">
<a href="gettingstarted.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-download"></i></div>
<div class="icontitle">Quick Start</div>
<div class="row">
<div class="col-12 sectionheader index">
<div class="title-small">Issues</div>
<div class="text"><span class="warning">Security issues:</span> We highly recomment to have a look at our <a href="security.html">security advisories</a></div>
<div class="text"><span class="bold">Having an issue</span>: If you run into problems, please check out <a href="issues.html">known issues page</a> first.<br>If you still have problems, please feel free to open an issue on our <a href="https://github.com/sebhildebrandt/systeminformation/issues">github page</a></div>
</div>
</a>
<a href="general.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-th-list"></i></div>
<div class="icontitle">General</div>
</div>
</a>
<a href="system.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-server"></i></div>
<div class="icontitle">System</div>
</div>
</a>
<a href="cpu.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-microchip"></i></div>
<div class="icontitle">CPU</div>
</div>
</a>
<a href="memory.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-memory"></i></div>
<div class="icontitle">Memory</div>
</div>
</a>
<a href="battery.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-battery-half"></i></div>
<div class="icontitle">Battery</div>
</div>
</a>
<a href="graphics.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-desktop"></i></div>
<div class="icontitle">Graphics</div>
</div>
</a>
<a href="os.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-window"></i></div>
<div class="icontitle">OS</div>
</div>
</a>
<a href="processes.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-chart-line"></i></div>
<div class="icontitle">Process/Service</div>
</div>
</a>
<a href="filesystem.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-hdd"></i></div>
<div class="icontitle">Disks / FS</div>
</div>
</a>
<a href="usb.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fab fa-usb"></i></div>
<div class="icontitle">USB</div>
</div>
</a>
<a href="printer.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-print"></i></div>
<div class="icontitle">Printer</div>
</div>
</a>
<a href="audio.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-volume"></i></div>
<div class="icontitle">Audio</div>
</div>
</a>
<a href="network.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-network-wired"></i></div>
<div class="icontitle">Network</div>
</div>
</a>
<a href="wifi.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-wifi"></i></div>
<div class="icontitle">Wifi</div>
</div>
</a>
<a href="bluetooth.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fab fa-bluetooth"></i></div>
<div class="icontitle">Bluetooth</div>
</div>
</a>
<a href="docker.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fab fa-docker"></i></div>
<div class="icontitle">Docker</div>
</div>
</a>
<a href="vbox.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-box-open"></i></div>
<div class="icontitle">Virtual Box</div>
</div>
</a>
</div>
<div class="row justify-content-center sectionheader index">
<div class="col-8">
<hr>
</div>
</div>
<div class="row">
<div class="col-12 sectionheader index">
<div class="title-small">Issues</div>
<div class="text"><span class="warning">Security issues:</span> We highly recomment to have a look at our <a href="security.html">security advisories</a></div>
<div class="text"><span class="bold">Having an issue</span>: If you run into problems, please check out <a href="issues.html">known issues page</a> first.<br>If you still have problems, please feel free to open an issue on our <a href="https://github.com/sebhildebrandt/systeminformation/issues">github page</a></div>
</div>
</div>
</section>
<footer class="container-fluid">
</section>
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -398,4 +402,4 @@
</script>
</body>
</html>
</html>

View File

@ -34,64 +34,66 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Known Issues</div>
<div class="text">
<h4>macOS - Temperature</h4>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Known Issues</div>
<div class="text">
<h4>macOS - Temperature</h4>
<p>To be able to measure temperature on macOS I created a little additional package. Due to some difficulties in NPM with <span class="code">optionalDependencies</span>
I unfortunately was getting unexpected warnings on other platforms. So I decided to drop this optional dependency for macOS - so by default,
you will not get correct values.</p>
<p>To be able to measure temperature on macOS I created a little additional package. Due to some difficulties in NPM with <span class="code">optionalDependencies</span>
I unfortunately was getting unexpected warnings on other platforms. So I decided to drop this optional dependency for macOS - so by default,
you will not get correct values.</p>
<p>But if you need to detect macOS temperature just run the following additional installation command:</p>
<p>But if you need to detect macOS temperature just run the following additional installation command:</p>
<pre>$ npm install osx-temperature-sensor --save</pre>
<p>systeminformation will then detect this additional library and return the temperature when calling systeminformations standard function <span class="code">cpuTemperature()</span></p>
<pre>$ npm install osx-temperature-sensor --save</pre>
<p>systeminformation will then detect this additional library and return the temperature when calling systeminformations standard function <span class="code">cpuTemperature()</span></p>
<h4>Windows Temperature, Battery, ...</h4>
<h4>Windows Temperature, Battery, ...</h4>
<p><span class="code">wmic</span> - which is used to determine temperature and battery sometimes needs to be run with admin
privileges. So if you do not get any values, try to run it again with according privileges. If you still do not get any
values, your system might not support this feature. In some cases we also discovered that wmic returned incorrect temperature values.</p>
<p><span class="code">wmic</span> - which is used to determine temperature and battery sometimes needs to be run with admin
privileges. So if you do not get any values, try to run it again with according privileges. If you still do not get any
values, your system might not support this feature. In some cases we also discovered that wmic returned incorrect temperature values.</p>
<h4>Linux Temperature</h4>
<h4>Linux Temperature</h4>
<p>In some cases you need to install the linux <span class="code">sensors</span> package to be able to measure temperature e.g. on DEBIAN based systems by running</p>
<pre>$ sudo apt-get install lm-sensors</pre>
<p>In some cases you need to install the linux <span class="code">sensors</span> package to be able to measure temperature e.g. on DEBIAN based systems by running</p>
<pre>$ sudo apt-get install lm-sensors</pre>
<h4>Windows, macOS - CPU Speed</h4>
<h4>Windows, macOS - CPU Speed</h4>
<p><span class="code">node.js</span> and <span class="code">wmic</span> are not able to determine correct CPU current speed on windows and macOS.
This means, you will have constant values here on both platforms for all processor cores in <span class="code">cpuCurrentSpeed()</span>.</p>
<p><span class="code">node.js</span> and <span class="code">wmic</span> are not able to determine correct CPU current speed on windows and macOS.
This means, you will have constant values here on both platforms for all processor cores in <span class="code">cpuCurrentSpeed()</span>.</p>
<h4>Linux S.M.A.R.T. Status</h4>
<h4>Linux S.M.A.R.T. Status</h4>
<p>To be able to detect S.M.A.R.T. status on Linux you need to install <span class="code">smartmontools</span>. On DEBIAN based linux distributions you can install it by running:</p>
<pre>$ sudo apt-get install smartmontools</pre>
<p>If you have smartmontools version >= 7.0 then you will get also full smart data in diskLayout()</p>
<p>To be able to detect S.M.A.R.T. status on Linux you need to install <span class="code">smartmontools</span>. On DEBIAN based linux distributions you can install it by running:</p>
<pre>$ sudo apt-get install smartmontools</pre>
<p>If you have smartmontools version >= 7.0 then you will get also full smart data in diskLayout()</p>
<h4>Stats Functions</h4>
<p>To get correct values with <span class="code">fsStats()</span>, <span class="code">disksIO()</span> and <span class="code">networkStats()</span> please check <a href="statsfunctions.html">this guide</a></p>
<h4>Stats Functions</h4>
<p>To get correct values with <span class="code">fsStats()</span>, <span class="code">disksIO()</span> and <span class="code">networkStats()</span> please check <a href="statsfunctions.html">this guide</a></p>
<h4>Empty / incorrect values</h4>
<p>If you discover empty or incorrect values, please keep in mind that some underlying commands need to be run under admin privileges. So if you run your scripts as normal users, not all system information values can be determined. For linux this is e.g. the case for `memLayout()`, advances `system()`, `bios()`, `baseboard()`, `cpu()`information, S.M.A.R.T. status and others... </p>
<h4>Empty / incorrect values</h4>
<p>If you discover empty or incorrect values, please keep in mind that some underlying commands need to be run under admin privileges. So if you run your scripts as normal users, not all system information values can be determined. For linux this is e.g. the case for `memLayout()`, advances `system()`, `bios()`, `baseboard()`, `cpu()`information, S.M.A.R.T. status and others... </p>
<h4>Finding New Issues</h4>
<p>If you still have problems, please feel free to open an issue on our <a href="https://github.com/sebhildebrandt/systeminformation/issues">github page</a></p>
<h4>Finding New Issues</h4>
<p>If you still have problems, please feel free to open an issue on our <a href="https://github.com/sebhildebrandt/systeminformation/issues">github page</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -135,4 +137,4 @@
</script>
</body>
</html>
</html>

View File

@ -38,169 +38,170 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Memory</div>
<div class="text">
<p>In this section you will learn how to get overall memory information (usage by OS) and memory module layout:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>System Memory and Memory Layout</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.mem(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Memory information (object)</td>
</tr>
<tr>
<td></td>
<td>total</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>total memory in bytes</td>
</tr>
<tr>
<td></td>
<td>free</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>not used in bytes</td>
</tr>
<tr>
<td></td>
<td>used</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>used (incl. buffers/cache)</td>
</tr>
<tr>
<td></td>
<td>active</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>used actively (excl. buffers/cache)</td>
</tr>
<tr>
<td></td>
<td>buffcache</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td>used by buffers+cache</td>
</tr>
<tr>
<td></td>
<td>buffers</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>used by buffers</td>
</tr>
<tr>
<td></td>
<td>cached</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>used by cache</td>
</tr>
<tr>
<td></td>
<td>slab</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>used by slab</td>
</tr>
<tr>
<td></td>
<td>available</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>potentially available (total - active)</td>
</tr>
<tr>
<td></td>
<td>swaptotal</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr>
<td></td>
<td>swapused</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr>
<td></td>
<td>swapfree</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Memory</div>
<div class="text">
<p>In this section you will learn how to get overall memory information (usage by OS) and memory module layout:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>System Memory and Memory Layout</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.mem(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Memory information (object)</td>
</tr>
<tr>
<td></td>
<td>total</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>total memory in bytes</td>
</tr>
<tr>
<td></td>
<td>free</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>not used in bytes</td>
</tr>
<tr>
<td></td>
<td>used</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>used (incl. buffers/cache)</td>
</tr>
<tr>
<td></td>
<td>active</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>used actively (excl. buffers/cache)</td>
</tr>
<tr>
<td></td>
<td>buffcache</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td>used by buffers+cache</td>
</tr>
<tr>
<td></td>
<td>buffers</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>used by buffers</td>
</tr>
<tr>
<td></td>
<td>cached</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>used by cache</td>
</tr>
<tr>
<td></td>
<td>slab</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>used by slab</td>
</tr>
<tr>
<td></td>
<td>available</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>potentially available (total - active)</td>
</tr>
<tr>
<td></td>
<td>swaptotal</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr>
<td></td>
<td>swapused</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr>
<td></td>
<td>swapfree</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.mem().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
@ -218,142 +219,142 @@ si.mem().then(data => console.log(data));</code></pre class="example">
swapfree: 8589930496
}
</pre>
</tr>
<tr>
<td>si.memLayout(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>Memory Layout (array of objects)</td>
</tr>
<tr>
<td></td>
<td>[0].size</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>size in bytes</td>
</tr>
<tr>
<td></td>
<td>[0].bank</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>memory bank</td>
</tr>
<tr>
<td></td>
<td>[0].type</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>memory type</td>
</tr>
<tr>
<td></td>
<td>[0].ecc</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>ECC memory</td>
</tr>
<tr>
<td></td>
<td>[0].clockSpeed</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>clock speed</td>
</tr>
<tr>
<td></td>
<td>[0].formFactor</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>form factor</td>
</tr>
<tr>
<td></td>
<td>[0].manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>manufacturer</td>
</tr>
<tr>
<td></td>
<td>[0].partNum</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>part number</td>
</tr>
<tr>
<td></td>
<td>[0].serialNum</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>serial number</td>
</tr>
<tr>
<td></td>
<td>[0].voltageConfigured</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>voltage conf.</td>
</tr>
<tr>
<td></td>
<td>[0].voltageMin</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>voltage min</td>
</tr>
<tr>
<td></td>
<td>[0].voltageMax</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>voltage max</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tr>
<tr>
<td>si.memLayout(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>Memory Layout (array of objects)</td>
</tr>
<tr>
<td></td>
<td>[0].size</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>size in bytes</td>
</tr>
<tr>
<td></td>
<td>[0].bank</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>memory bank</td>
</tr>
<tr>
<td></td>
<td>[0].type</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>memory type</td>
</tr>
<tr>
<td></td>
<td>[0].ecc</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>ECC memory</td>
</tr>
<tr>
<td></td>
<td>[0].clockSpeed</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>clock speed</td>
</tr>
<tr>
<td></td>
<td>[0].formFactor</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>form factor</td>
</tr>
<tr>
<td></td>
<td>[0].manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>manufacturer</td>
</tr>
<tr>
<td></td>
<td>[0].partNum</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>part number</td>
</tr>
<tr>
<td></td>
<td>[0].serialNum</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>serial number</td>
</tr>
<tr>
<td></td>
<td>[0].voltageConfigured</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>voltage conf.</td>
</tr>
<tr>
<td></td>
<td>[0].voltageMin</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>voltage min</td>
</tr>
<tr>
<td></td>
<td>[0].voltageMax</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>voltage max</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.memLayout().then(data => console.log(data));</code></pre class="example">
<pre class="example">
[
@ -387,17 +388,18 @@ si.memLayout().then(data => console.log(data));</code></pre class="example">
}
]
</pre>
</tr>
</tbody>
</table>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -441,4 +443,4 @@ si.memLayout().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -38,139 +38,140 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Printer</div>
<div class="text">
<p>In this section you will learn how to get information about detected printers:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Detected Printers</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.printer(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>printer informatiom</td>
</tr>
<tr>
<td></td>
<td>[0].id</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>internal ID</td>
</tr>
<tr>
<td></td>
<td>[0].name</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>printer name</td>
</tr>
<tr>
<td></td>
<td>[0].model</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>printer model</td>
</tr>
<tr>
<td></td>
<td>[0].uri</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>printer URI</td>
</tr>
<tr>
<td></td>
<td>[0].uuid</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>printer UUID</td>
</tr>
<tr>
<td></td>
<td>[0].status</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>printer status (e.g. idle)</td>
</tr>
<tr>
<td></td>
<td>[0].local</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>is local printer</td>
</tr>
<tr>
<td></td>
<td>[0].default</td>
<td></td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>is default printer</td>
</tr>
<tr>
<td></td>
<td>[0].shared</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>is shared printer</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Printer</div>
<div class="text">
<p>In this section you will learn how to get information about detected printers:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Detected Printers</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.printer(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>printer informatiom</td>
</tr>
<tr>
<td></td>
<td>[0].id</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>internal ID</td>
</tr>
<tr>
<td></td>
<td>[0].name</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>printer name</td>
</tr>
<tr>
<td></td>
<td>[0].model</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>printer model</td>
</tr>
<tr>
<td></td>
<td>[0].uri</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>printer URI</td>
</tr>
<tr>
<td></td>
<td>[0].uuid</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>printer UUID</td>
</tr>
<tr>
<td></td>
<td>[0].status</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>printer status (e.g. idle)</td>
</tr>
<tr>
<td></td>
<td>[0].local</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>is local printer</td>
</tr>
<tr>
<td></td>
<td>[0].default</td>
<td></td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>is default printer</td>
</tr>
<tr>
<td></td>
<td>[0].shared</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>is shared printer</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.printer().then(data => console.log(data));</code></pre class="example">
<pre class="example">
[
@ -197,18 +198,19 @@ si.printer().then(data => console.log(data));</code></pre class="example">
shared: true
}
]</pre>
</tr>
</tr>
</tbody>
</table>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -252,4 +254,4 @@ si.printer().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -34,182 +34,184 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Security Advisories</div>
<div class="text">
<h2>Passing User Paramters to Systeminformation</h2>
<p>For most of the applications that are using <span class="code">systeminformation</span>, there is no reason to worry. <span class="bold">But be aware!</span> If you are using <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span>, <span class="code">versions()</span> with arbitrary untrusted user input, you should pay extra attention! We are doing a lot of input sanitation for those functions inside this package but we cannot handle all cases!</p>
<p class="warning">This can lead to serious impact on your servers!</p>
<p>We highly recommend to always upgrade to the latest version of our package. We maintain security updates for version 5 AND also version 4. For version 4 you can install latest version by placing <span class="code">"systeminformation": "^4"</span> in your package.json (dependencies) and run <span class="code">npm install</span></p>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Security Advisories</div>
<div class="text">
<h2>Passing User Paramters to Systeminformation</h2>
<p>For most of the applications that are using <span class="code">systeminformation</span>, there is no reason to worry. <span class="bold">But be aware!</span> If you are using <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span>, <span class="code">versions()</span> with arbitrary untrusted user input, you should pay extra attention! We are doing a lot of input sanitation for those functions inside this package but we cannot handle all cases!</p>
<p class="warning">This can lead to serious impact on your servers!</p>
<p>We highly recommend to always upgrade to the latest version of our package. We maintain security updates for version 5 AND also version 4. For version 4 you can install latest version by placing <span class="code">"systeminformation": "^4"</span> in your package.json (dependencies) and run <span class="code">npm install</span></p>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 5.6.13 and &lt; 4.34.21<br>
<span class="bold">Date:</span> 2021-05-04<br>
<span class="bold">CVE indentifier</span> -
</p>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 5.6.13 and &lt; 4.34.21<br>
<span class="bold">Date:</span> 2021-05-04<br>
<span class="bold">CVE indentifier</span> -
</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by passing a non string values as a parameter to the <span class="code">dockerImagesInspect()</span>, <span class="code">dockerContainerInspect()</span>, <span class="code">dockerContainerProcesses()</span>.</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by passing a non string values as a parameter to the <span class="code">dockerImagesInspect()</span>, <span class="code">dockerContainerInspect()</span>, <span class="code">dockerContainerProcesses()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with parameter checking. Please upgrade to version >= 5.6.13 (or >= 4.34.21 if you are using version 4).</p>
<h4>Patch</h4>
<p>Problem was fixed with parameter checking. Please upgrade to version >= 5.6.13 (or >= 4.34.21 if you are using version 4).</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize parameter strings that are passed to <span class="code">dockerImagesInspect()</span>, <span class="code">dockerContainerInspect()</span>, <span class="code">dockerContainerProcesses()</span> (string only)</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 5.6.11 and &lt; 4.34.20<br>
<span class="bold">Date:</span> 2021-04-08<br>
<span class="bold">CVE indentifier</span> -
</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize parameter strings that are passed to <span class="code">dockerImagesInspect()</span>, <span class="code">dockerContainerInspect()</span>, <span class="code">dockerContainerProcesses()</span> (string only)</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 5.6.11 and &lt; 4.34.20<br>
<span class="bold">Date:</span> 2021-04-08<br>
<span class="bold">CVE indentifier</span> -
</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by passing a non string values as a parameter to the <span class="code">versions()</span>.</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by passing a non string values as a parameter to the <span class="code">versions()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with parameter checking. Please upgrade to version >= 5.6.11 (or >= 4.34.20 if you are using version 4).</p>
<h4>Patch</h4>
<p>Problem was fixed with parameter checking. Please upgrade to version >= 5.6.11 (or >= 4.34.20 if you are using version 4).</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize parameter strings that are passed to <span class="code">versions()</span> (string only)</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 5.6.4 and &lt; 4.34.17<br>
<span class="bold">Date:</span> 2021-03-15<br>
<span class="bold">CVE indentifier</span> CVE-2021-21388
</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize parameter strings that are passed to <span class="code">versions()</span> (string only)</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 5.6.4 and &lt; 4.34.17<br>
<span class="bold">Date:</span> 2021-03-15<br>
<span class="bold">CVE indentifier</span> CVE-2021-21388
</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by passing a manipulated string prototype as a parameter to the following functions. Affected commands: <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span>.</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by passing a manipulated string prototype as a parameter to the following functions. Affected commands: <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with additional parameter checking. Please upgrade to version >= 5.6.4 (or >= 4.34.17 if you are using version 4).</p>
<h4>Patch</h4>
<p>Problem was fixed with additional parameter checking. Please upgrade to version >= 5.6.4 (or >= 4.34.17 if you are using version 4).</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize parameter strings that are passed to <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span> (string only)</p>
<hr>
<br>
<h2>Insufficient File Scheme Validation</h2>
<p><span class="bold">Affected versions:</span>
&lt; 5.3.2 and &lt; 4.34.12<br>
<span class="bold">Date:</span> 2021-02-15<br>
<span class="bold">CVE indentifier</span> -
</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize parameter strings that are passed to <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span> (string only)</p>
<hr>
<br>
<h2>Insufficient File Scheme Validation</h2>
<p><span class="bold">Affected versions:</span>
&lt; 5.3.2 and &lt; 4.34.12<br>
<span class="bold">Date:</span> 2021-02-15<br>
<span class="bold">CVE indentifier</span> -
</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to run inetChecksite against local files due to improper file scheme validation. Affected commands: <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>.</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to run inetChecksite against local files due to improper file scheme validation. Affected commands: <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with additional parameter checking. Please upgrade to version >= 5.3.2 (or >= 4.34.12 if you are using version 4).</p>
<h4>Patch</h4>
<p>Problem was fixed with additional parameter checking. Please upgrade to version >= 5.3.2 (or >= 4.34.12 if you are using version 4).</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span> (sanitize `file://` parameter)</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 5.3.1 and &lt; 4.34.11<br>
<span class="bold">Date:</span> 2021-02-14<br>
<span class="bold">CVE indentifier</span> CVE-2021-21315
</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span> (sanitize `file://` parameter)</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 5.3.1 and &lt; 4.34.11<br>
<span class="bold">Date:</span> 2021-02-14<br>
<span class="bold">CVE indentifier</span> CVE-2021-21315
</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by passing a manipulated array as a parameter to the following functions. Affected commands: <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span>.</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by passing a manipulated array as a parameter to the following functions. Affected commands: <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with additional parameter checking. Please upgrade to version >= 5.3.1 (or >= 4.34.11 if you are using version 4).</p>
<h4>Patch</h4>
<p>Problem was fixed with additional parameter checking. Please upgrade to version >= 5.3.1 (or >= 4.34.11 if you are using version 4).</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span> (string only)</p>
<hr>
<br>
<h2>DOS Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 5.2.6 and &lt; 4.34.10<br>
<span class="bold">Date:</span> 2021-02-12<br>
<span class="bold">CVE indentifier</span> -
</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span> (string only)</p>
<hr>
<br>
<h2>DOS Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 5.2.6 and &lt; 4.34.10<br>
<span class="bold">Date:</span> 2021-02-12<br>
<span class="bold">CVE indentifier</span> -
</p>
<h4>Impact</h4>
<p>Here we had an issue that there was a possibility to perform a ping command execution for too long time. Affected commands: <span class="code">inetLatency()</span>.</p>
<h4>Impact</h4>
<p>Here we had an issue that there was a possibility to perform a ping command execution for too long time. Affected commands: <span class="code">inetLatency()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with a shell string sanitation fix. Please upgrade to version >= 5.2.6 (or >= 4.34.10 if you are using version 4).</p>
<h4>Patch</h4>
<p>Problem was fixed with a shell string sanitation fix. Please upgrade to version >= 5.2.6 (or >= 4.34.10 if you are using version 4).</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetLatency()</span> (no spaces)</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 4.31.1<br>
<span class="bold">Date:</span> 2020-12-11<br>
<span class="bold">CVE indentifier</span> CVE-2020-26274, CVE-2020-28448
</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetLatency()</span> (no spaces)</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 4.31.1<br>
<span class="bold">Date:</span> 2020-12-11<br>
<span class="bold">CVE indentifier</span> CVE-2020-26274, CVE-2020-28448
</p>
<h4>Impact</h4>
<p>Here we had an issue that there was a possibility to inject commands to the command line of your machine via systeminformation. Affected commands: <span class="code">inetLatency()</span>.</p>
<h4>Impact</h4>
<p>Here we had an issue that there was a possibility to inject commands to the command line of your machine via systeminformation. Affected commands: <span class="code">inetLatency()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with a shell string sanitation fix. Please upgrade to version >= 4.31.1</p>
<h4>Patch</h4>
<p>Problem was fixed with a shell string sanitation fix. Please upgrade to version >= 4.31.1</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetLatency()</span></p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetLatency()</span></p>
<hr>
<br>
<h2>Command Injection Vulnerability - Prototype Pollution</h2>
<p><span class="bold">Affected versions:</span>
&lt; 4.30.5<br>
<span class="bold">Date:</span> 2020-11-26<br>
<span class="bold">CVE indentifier</span> CVE-2020-26245
</p>
<hr>
<br>
<h2>Command Injection Vulnerability - Prototype Pollution</h2>
<p><span class="bold">Affected versions:</span>
&lt; 4.30.5<br>
<span class="bold">Date:</span> 2020-11-26<br>
<span class="bold">CVE indentifier</span> CVE-2020-26245
</p>
<h4>Impact</h4>
<p>Here we had an issue that there was a possibility to inject commands to the command line by property pollution on the string object. Affected commands: <span class="code">inetChecksite()</span>.</p>
<h4>Impact</h4>
<p>Here we had an issue that there was a possibility to inject commands to the command line by property pollution on the string object. Affected commands: <span class="code">inetChecksite()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with a shell string sanitation fix as well as handling prototype polution. Please upgrade to version >= 4.30.5</p>
<h4>Patch</h4>
<p>Problem was fixed with a shell string sanitation fix as well as handling prototype polution. Please upgrade to version >= 4.30.5</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetChecksite()</span></p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetChecksite()</span></p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 4.27.11<br>
<span class="bold">Date:</span> 2020-10-26<br>
<span class="bold">CVE indentifier</span> CVE-2020-7752
</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 4.27.11<br>
<span class="bold">Date:</span> 2020-10-26<br>
<span class="bold">CVE indentifier</span> CVE-2020-7752
</p>
<h4>Impact</h4>
<p>Here we had an issue that there was a possibility to inject commands to the command line of your machine via systeminformation. Affected commands: <span class="code">inetChecksite()</span>.</p>
<h4>Impact</h4>
<p>Here we had an issue that there was a possibility to inject commands to the command line of your machine via systeminformation. Affected commands: <span class="code">inetChecksite()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with a shell string sanitation fix. Please upgrade to version >= 4.27.11</p>
<h4>Patch</h4>
<p>Problem was fixed with a shell string sanitation fix. Please upgrade to version >= 4.27.11</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetChecksite()</span></p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetChecksite()</span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">

View File

@ -38,65 +38,66 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Stats Functions</div>
<div class="text">
<h2>Getting correct stats values</h2>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Stats Functions</div>
<div class="text">
<h2>Getting correct stats values</h2>
<p>In <span class="code">fsStats()</span>, <span class="code">disksIO()</span>, <span class="code">currentLoad()</span> and <span class="code">networkStats()</span> the
results / sec. values (rx_sec, IOPS, ...) are calculated correctly beginning with the <strong>second</strong> call of the function.
It is determined by calculating the difference of transferred bytes / IOs divided by the time between two calls of the function.</p>
<p>In <span class="code">fsStats()</span>, <span class="code">disksIO()</span>, <span class="code">currentLoad()</span> and <span class="code">networkStats()</span> the
results / sec. values (rx_sec, IOPS, ...) are calculated correctly beginning with the <strong>second</strong> call of the function.
It is determined by calculating the difference of transferred bytes / IOs divided by the time between two calls of the function.</p>
<p>The first time you are calling one of this functions, you will get <span class="code">-1</span> for transfer rates.
The second time, you should then get statistics based on the time between the two calls ...</p>
<p>The first time you are calling one of this functions, you will get <span class="code">-1</span> for transfer rates.
The second time, you should then get statistics based on the time between the two calls ...</p>
<p>So basically, if you e.g. need a values for network stats every second, your code should look like this:</p>
<p>So basically, if you e.g. need a values for network stats every second, your code should look like this:</p>
<pre><code class="js">const si = require('systeminformation');
<pre><code class="js">const si = require('systeminformation');
setInterval(function() {
si.networkStats().then(data => {
console.log(data);
})
}, 1000)</code></pre>
<p>Beginning with the second call, you get network transfer values per second.</p>
<h2>Observe System Parameters</h2>
<p>systeminformation now allows you to easily observe system parameters: First you define a result object of system parameters you want to observe (see also decription of the <a href="general.html"><span class="code">si.get()</span> function here</a>):</p>
<p>Then you just call an <span class="code">si.observe()</span> function with three parameters: your result object, the polling interval (in milliseconds) and a callback function. systeminformation will now observe the result object. Every time the result changes, your callback function is called. This callback function also gets the current value the observed system parameters object.</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<p>Beginning with the second call, you get network transfer values per second.</p>
<h2>Observe System Parameters</h2>
<p>systeminformation now allows you to easily observe system parameters: First you define a result object of system parameters you want to observe (see also decription of the <a href="general.html"><span class="code">si.get()</span> function here</a>):</p>
<p>Then you just call an <span class="code">si.observe()</span> function with three parameters: your result object, the polling interval (in milliseconds) and a callback function. systeminformation will now observe the result object. Every time the result changes, your callback function is called. This callback function also gets the current value the observed system parameters object.</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
<td>si.observe(valueObject,interval,cb)</td>
<td>-</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Observe the defined value object,<br>call callback on changes:</td>
</tr>
</thead>
<tr>
<td>si.observe(valueObject,interval,cb)</td>
<td>-</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Observe the defined value object,<br>call callback on changes:</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
// define all values, you want to get back
valueObject = {
@ -126,7 +127,8 @@ setTimeout(() => {
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -170,4 +172,4 @@ setTimeout(() => {
</script>
</body>
</html>
</html>

View File

@ -1,5 +1,6 @@
body {
font-family: "Roboto", "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, sans-serif;
background-color: #0e182e;
font-weight: 300;
min-height: 100%;
}
@ -36,6 +37,11 @@ h1, h2, h3, h4 {
color: #3d5cb3;
}
.container-fluid {
background-color: white;
padding-bottom: 30px;
}
.bg-image-full {
background-color: #1A1F30;
/* For browsers that do not support gradients */
@ -640,24 +646,23 @@ pre {
background-color: #f0f0f4;
}
footer {
.footer {
background-color: #eee;
margin-top: 30px;
padding-top: 30px;
padding-bottom: 30px;
position: relative;
}
footer .home {
.footer .home {
color: #3d5cb3;
font-size: 1.1rem;
}
footer a {
.footer a {
color: #000;
}
footer a:hover {
.footer a:hover {
text-decoration: none;
}
footer .badge {
.footer .badge {
color: #fff;
font-size: 0.9rem;
}/*# sourceMappingURL=styles.css.map */

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,6 @@
body {
font-family: 'Roboto', 'HelveticaNeue-Light','Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,sans-serif;
background-color: rgb(14, 24, 46);
font-weight: 300;
min-height: 100%;
}
@ -29,6 +30,10 @@ h1, h2, h3, h4 {
color: rgb(61, 92, 179);
}
.container-fluid {
background-color: rgb(255,255,255);
padding-bottom: 30px;
}
.bg-image-full {
// background: no-repeat center center scroll;
background-color: #1A1F30; /* For browsers that do not support gradients */
@ -535,9 +540,8 @@ pre {
}
}
}
footer {
.footer {
background-color: #eee;
margin-top: 30px;
padding-top: 30px;
padding-bottom: 30px;
position: relative;

View File

@ -38,139 +38,140 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">System (Hardware)</div>
<div class="text">
<p>In this section you will learn how to get basic system hardware data. We will cover the system, baseboard and bios:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>System</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.system(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>hardware information</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'MSI' or 'DELL'</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>model/product e.g. 'MS-7823'</td>
</tr>
<tr>
<td></td>
<td>version</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>version e.g. '1.0'</td>
</tr>
<tr>
<td></td>
<td>serial</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>serial number</td>
</tr>
<tr>
<td></td>
<td>uuid</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>UUID</td>
</tr>
<tr>
<td></td>
<td>sku</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>SKU number</td>
</tr>
<tr>
<td></td>
<td>virtual</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>is virtual machine</td>
</tr>
<tr>
<td></td>
<td>virtualHost</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>virtual host (only if virtual = true)</td>
</tr>
<tr>
<td></td>
<td>raspberry</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>Additional Raspberry-specific information<br>manufacturer, processor, type, revision<br>Raspberry only</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">System (Hardware)</div>
<div class="text">
<p>In this section you will learn how to get basic system hardware data. We will cover the system, baseboard and bios:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>System</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.system(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>hardware information</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'MSI' or 'DELL'</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>model/product e.g. 'MS-7823'</td>
</tr>
<tr>
<td></td>
<td>version</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>version e.g. '1.0'</td>
</tr>
<tr>
<td></td>
<td>serial</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>serial number</td>
</tr>
<tr>
<td></td>
<td>uuid</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>UUID</td>
</tr>
<tr>
<td></td>
<td>sku</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>SKU number</td>
</tr>
<tr>
<td></td>
<td>virtual</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>is virtual machine</td>
</tr>
<tr>
<td></td>
<td>virtualHost</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>virtual host (only if virtual = true)</td>
</tr>
<tr>
<td></td>
<td>raspberry</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>Additional Raspberry-specific information<br>manufacturer, processor, type, revision<br>Raspberry only</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.system().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
@ -183,52 +184,52 @@ si.system().then(data => console.log(data));</code></pre class="example">
virtual: false,
}
</pre>
</tr>
<tr>
<td>si.uuid(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>object of several UUIDs</td>
</tr>
<tr>
<td></td>
<td>os</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>os specific UUID</td>
</tr>
<tr>
<td></td>
<td>hardware</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>hardware specific UUID</td>
</tr>
<tr>
<td></td>
<td>macs</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>MAC addresses</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tr>
<tr>
<td>si.uuid(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>object of several UUIDs</td>
</tr>
<tr>
<td></td>
<td>os</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>os specific UUID</td>
</tr>
<tr>
<td></td>
<td>hardware</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>hardware specific UUID</td>
</tr>
<tr>
<td></td>
<td>macs</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>MAC addresses</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.uuid().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
@ -241,82 +242,82 @@ si.uuid().then(data => console.log(data));</code></pre class="example">
]
}
</pre>
</tr>
<tr>
<td>si.bios(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>bios information</td>
</tr>
<tr>
<td></td>
<td>vendor</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'AMI'</td>
</tr>
<tr>
<td></td>
<td>version</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>version</td>
</tr>
<tr>
<td></td>
<td>releaseDate</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>release date</td>
</tr>
<tr>
<td></td>
<td>revision</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>revision</td>
</tr>
<tr>
<td></td>
<td>language</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>bios language</td>
</tr>
<tr>
<td></td>
<td>features</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>supported features</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tr>
<tr>
<td>si.bios(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>bios information</td>
</tr>
<tr>
<td></td>
<td>vendor</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'AMI'</td>
</tr>
<tr>
<td></td>
<td>version</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>version</td>
</tr>
<tr>
<td></td>
<td>releaseDate</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>release date</td>
</tr>
<tr>
<td></td>
<td>revision</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>revision</td>
</tr>
<tr>
<td></td>
<td>language</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>bios language</td>
</tr>
<tr>
<td></td>
<td>features</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>supported features</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.bios().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
@ -338,92 +339,92 @@ si.bios().then(data => console.log(data));</code></pre class="example">
'UEFI'
]
}</pre>
</tr>
<tr>
<td>si.baseboard(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>baseboard information</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'ASUS'</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>model / product name</td>
</tr>
<tr>
<td></td>
<td>version</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>version</td>
</tr>
<tr>
<td></td>
<td>serial</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>serial number</td>
</tr>
<tr>
<td></td>
<td>assetTag</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>asset tag</td>
</tr>
<tr>
<td></td>
<td>memMax</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>memory max capacity bytes (where available)</td>
</tr>
<tr>
<td></td>
<td>memSlots</td>
<td></td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>number memory slots on baseboard</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tr>
<tr>
<td>si.baseboard(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>baseboard information</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'ASUS'</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>model / product name</td>
</tr>
<tr>
<td></td>
<td>version</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>version</td>
</tr>
<tr>
<td></td>
<td>serial</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>serial number</td>
</tr>
<tr>
<td></td>
<td>assetTag</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>asset tag</td>
</tr>
<tr>
<td></td>
<td>memMax</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>memory max capacity bytes (where available)</td>
</tr>
<tr>
<td></td>
<td>memSlots</td>
<td></td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>number memory slots on baseboard</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.baseboard().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
@ -435,92 +436,92 @@ si.baseboard().then(data => console.log(data));</code></pre class="example">
memMax: 68719476736
memSlots: 2
}</pre>
</tr>
<tr>
<td>si.chassis(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>chassis information</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'ASUS'</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>model / product name</td>
</tr>
<tr>
<td></td>
<td>type</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>chassis type e.g. 'desktop'</td>
</tr>
<tr>
<td></td>
<td>version</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>version</td>
</tr>
<tr>
<td></td>
<td>serial</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>serial number</td>
</tr>
<tr>
<td></td>
<td>assetTag</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>asset tag</td>
</tr>
<tr>
<td></td>
<td>sku</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>SKU number</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tr>
<tr>
<td>si.chassis(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>chassis information</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'ASUS'</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>model / product name</td>
</tr>
<tr>
<td></td>
<td>type</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>chassis type e.g. 'desktop'</td>
</tr>
<tr>
<td></td>
<td>version</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>version</td>
</tr>
<tr>
<td></td>
<td>serial</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>serial number</td>
</tr>
<tr>
<td></td>
<td>assetTag</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>asset tag</td>
</tr>
<tr>
<td></td>
<td>sku</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>SKU number</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.chassis().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
@ -532,17 +533,18 @@ si.chassis().then(data => console.log(data));</code></pre class="example">
assetTag: 'Mac-99878xxxx...',
sku: ''
}</pre>
</tr>
</tbody>
</table>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -586,4 +588,4 @@ si.chassis().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -38,28 +38,29 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Tests</div>
<div class="text">
<p>If you run into problems, you now can easily test if a specific function is supported on your platform and returns plausible results. In this section you will learn how you can easily test all functions on your platform:</p>
<h2>Testing on your platform</h2>
<p>First of all make sure, that you have <span class="code">git</span> installed on your machine. </p>
<p>Next you need to clone the git repository to a directory of your choice:</p>
<pre><code class="js">git clone https://github.com/sebhildebrandt/systeminformation.git</code></pre>
<p>Go inside the newly created <span class="code">systeminformation</span> directory</p>
<pre><code class="js">cd systeminformation</code></pre>
<p>If you already cloned the repository, make sure that you have the latest version installed:</p>
<pre><code class="js">git pull</code></pre>
<p>Now you can start the test with</p>
<pre><code class="js">npm run test</code></pre>
<p>You get a nice menu where you now can run function by function and see if you get meaningfull results (if supported on yur platform) or errors. Sample output:</p>
<pre><code class="js">SYSTEMINFORMATION - Test Scripts - Version: 5.x.y
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Tests</div>
<div class="text">
<p>If you run into problems, you now can easily test if a specific function is supported on your platform and returns plausible results. In this section you will learn how you can easily test all functions on your platform:</p>
<h2>Testing on your platform</h2>
<p>First of all make sure, that you have <span class="code">git</span> installed on your machine. </p>
<p>Next you need to clone the git repository to a directory of your choice:</p>
<pre><code class="js">git clone https://github.com/sebhildebrandt/systeminformation.git</code></pre>
<p>Go inside the newly created <span class="code">systeminformation</span> directory</p>
<pre><code class="js">cd systeminformation</code></pre>
<p>If you already cloned the repository, make sure that you have the latest version installed:</p>
<pre><code class="js">git pull</code></pre>
<p>Now you can start the test with</p>
<pre><code class="js">npm run test</code></pre>
<p>You get a nice menu where you now can run function by function and see if you get meaningfull results (if supported on yur platform) or errors. Sample output:</p>
<pre><code class="js">SYSTEMINFORMATION - Test Scripts - Version: 5.x.y
═══════════════════════════════════════════════════════════
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
@ -77,9 +78,9 @@
│ g ... Graphics s ... Services z ... Users 9 ... Docker Cont Stats │
│ h ... Bluetooth S ... Shell 0 ... Docker Cont Proc q >>> QUIT │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</code></pre>
<p><span class="bold">Press q</span> to exit the test suite</p>
<p>Here a sample output for the e.g. <span class="bold">c ... CPU</span></p>
<pre><code class="js">┌────────────────────────────────────────────────┐
<p><span class="bold">Press q</span> to exit the test suite</p>
<p>Here a sample output for the e.g. <span class="bold">c ... CPU</span></p>
<pre><code class="js">┌────────────────────────────────────────────────┐
│ CPU v: 5.x.y │
└────────────────────────────────────────────────┘
{
@ -103,16 +104,17 @@
virtualization: true,
cache: { l1d: 32768, l1i: 32768, l2: 262144, l3: 8388608 }
}</code></pre>
<p>Make sure to have a look in the documentation if there are already <a href="issues.html">known issues</a> and if the specific function is supported on your platform. If yes, check whether results are meaningfull and plausible.</p>
<p>I highly appreciate if you test all functions on your specific platform. This will help me improving the package and provide the best possible platform support.</p>
<p>Make sure to have a look in the documentation if there are already <a href="issues.html">known issues</a> and if the specific function is supported on your platform. If yes, check whether results are meaningfull and plausible.</p>
<p>I highly appreciate if you test all functions on your specific platform. This will help me improving the package and provide the best possible platform support.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -156,4 +158,4 @@
</script>
</body>
</html>
</html>

View File

@ -34,57 +34,59 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader left">
<div class="title">Trademarks</div>
<div class="text">
<p>The following trademarks are the properties of their respective owners as listed below. Should any trademark attribution be missing, mistaken or erroneous, please contact us as soon as possible for rectification.</p>
<ul>
<li><strong>Node.js</strong> is a trademark of Joyent Inc.</li>
<li><strong>Linux</strong> is a registered trademark of Linus Torvalds</li>
<li><strong>Apple, macOS, OS X, CUPS</strong> are registered trademarks of Apple Inc.</li>
<li><strong>Windows</strong> is a registered trademark of Microsoft Corporation</li>
<li><strong>Intel</strong> is a trademark of Intel Corporation</li>
<li><strong>AMD</strong> is a trademark of Advanced Micro Devices Inc.</li>
<li><strong>Ryzen</strong> is a trademark of Advanced Micro Devices Inc.</li>
<li><strong>Raspberry Pi</strong> is a trademark of the Raspberry Pi Foundation</li>
<li><strong>Debian</strong> is a trademark of the Debian Project</li>
<li><strong>FreeBSD</strong> is a registered trademark of The FreeBSD Foundation</li>
<li><strong>NetBSD</strong> is a registered trademark of The NetBSD Foundation</li>
<li><strong>Docker</strong> is a trademark of Docker, Inc.</li>
<li><strong>Ubuntu</strong> is a trademark of Canonical Ltd.</li>
<li><strong>CentOS</strong> is a trademark of Read Hat Inc.</li>
<li><strong>Sun, Solaris, OpenSolaris</strong> are registered trademarks of Sun Microsystems</li>
<li><strong>Virtual Box</strong> is a registered trademark of Oracle Corporation</li>
<li><strong>Xen</strong> is a registered trademark of Xen Project, The Linux Foundation Projects</li>
<li><strong>VMware</strong> is a registered trademark of VMware, Inc.</li>
<li><strong>bochs</strong> is a trademark of The Bochs Project</li>
<li><strong>QEMU</strong> is a trademark of Fabrice Bellard.</li>
<li><strong>BSD</strong> is a registered trademark of UUnet Technologies, Inc.</li>
<li><strong>UNIX</strong> is a registered trademark of The Open Group.</li>
<li><strong>NVIDIA</strong> is a registered trademark of NVIDIA Corporation.</li>
<li><strong>MSI</strong> is a registered trademark Micro-Star International Co.</li>
<li><strong>DELL</strong> is a registered trademark of Dell Inc.</li>
<li><strong>ASUS</strong> is a registered trademark of ASUSTeK Computer.</li>
<li><strong>Alpine</strong> is a trademark of Alpine Linux Development Team.</li>
<li><strong>USB and USB Logo</strong> are trademarks of USB Implementation Forum.</li>
<li><strong>Bluetooth and Bluetooth Logo</strong> are trademarks of Bluetooth SIG..</li>
<li><strong>+innovations</strong> is a trademark of plus-innovations application development GmbH</li>
</ul>
<p>All other trademarks are the property of their respective owners.</p>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader left">
<div class="title">Trademarks</div>
<div class="text">
<p>The following trademarks are the properties of their respective owners as listed below. Should any trademark attribution be missing, mistaken or erroneous, please contact us as soon as possible for rectification.</p>
<ul>
<li><strong>Node.js</strong> is a trademark of Joyent Inc.</li>
<li><strong>Linux</strong> is a registered trademark of Linus Torvalds</li>
<li><strong>Apple, macOS, OS X, CUPS</strong> are registered trademarks of Apple Inc.</li>
<li><strong>Windows</strong> is a registered trademark of Microsoft Corporation</li>
<li><strong>Intel</strong> is a trademark of Intel Corporation</li>
<li><strong>AMD</strong> is a trademark of Advanced Micro Devices Inc.</li>
<li><strong>Ryzen</strong> is a trademark of Advanced Micro Devices Inc.</li>
<li><strong>Raspberry Pi</strong> is a trademark of the Raspberry Pi Foundation</li>
<li><strong>Debian</strong> is a trademark of the Debian Project</li>
<li><strong>FreeBSD</strong> is a registered trademark of The FreeBSD Foundation</li>
<li><strong>NetBSD</strong> is a registered trademark of The NetBSD Foundation</li>
<li><strong>Docker</strong> is a trademark of Docker, Inc.</li>
<li><strong>Ubuntu</strong> is a trademark of Canonical Ltd.</li>
<li><strong>CentOS</strong> is a trademark of Read Hat Inc.</li>
<li><strong>Sun, Solaris, OpenSolaris</strong> are registered trademarks of Sun Microsystems</li>
<li><strong>Virtual Box</strong> is a registered trademark of Oracle Corporation</li>
<li><strong>Xen</strong> is a registered trademark of Xen Project, The Linux Foundation Projects</li>
<li><strong>VMware</strong> is a registered trademark of VMware, Inc.</li>
<li><strong>bochs</strong> is a trademark of The Bochs Project</li>
<li><strong>QEMU</strong> is a trademark of Fabrice Bellard.</li>
<li><strong>BSD</strong> is a registered trademark of UUnet Technologies, Inc.</li>
<li><strong>UNIX</strong> is a registered trademark of The Open Group.</li>
<li><strong>NVIDIA</strong> is a registered trademark of NVIDIA Corporation.</li>
<li><strong>MSI</strong> is a registered trademark Micro-Star International Co.</li>
<li><strong>DELL</strong> is a registered trademark of Dell Inc.</li>
<li><strong>ASUS</strong> is a registered trademark of ASUSTeK Computer.</li>
<li><strong>Alpine</strong> is a trademark of Alpine Linux Development Team.</li>
<li><strong>USB and USB Logo</strong> are trademarks of USB Implementation Forum.</li>
<li><strong>Bluetooth and Bluetooth Logo</strong> are trademarks of Bluetooth SIG..</li>
<li><strong>+innovations</strong> is a trademark of plus-innovations application development GmbH</li>
</ul>
<p>All other trademarks are the property of their respective owners.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -128,4 +130,4 @@
</script>
</body>
</html>
</html>

View File

@ -38,149 +38,150 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">USB</div>
<div class="text">
<p>In this section you will learn how to get information about detected USB devices:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Detected USB Devices</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.usb(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>array detected USB devices</td>
</tr>
<tr>
<td></td>
<td>[0].bus</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>USB bus</td>
</tr>
<tr>
<td></td>
<td>[0].deviceId</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>Bus device ID</td>
</tr>
<tr>
<td></td>
<td>[0].id</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>ID e.g. 0bda:8821</td>
</tr>
<tr>
<td></td>
<td>[0].name</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>name, e.g. root hub</td>
</tr>
<tr>
<td></td>
<td>[0].type</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>type e.g. keyboard or mouse</td>
</tr>
<tr>
<td></td>
<td>[0].removable</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>is removable</td>
</tr>
<tr>
<td></td>
<td>[0].vendor</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>vendor e.g. Realtek</td>
</tr>
<tr>
<td></td>
<td>[0].manufacturer</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>manufacturer e.g. Chicony</td>
</tr>
<tr>
<td></td>
<td>[0].maxPower</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>max power e.g. 100mA</td>
</tr>
<tr>
<td></td>
<td>[0].serialNumber</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>serial number if available</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">USB</div>
<div class="text">
<p>In this section you will learn how to get information about detected USB devices:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Detected USB Devices</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.usb(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>array detected USB devices</td>
</tr>
<tr>
<td></td>
<td>[0].bus</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>USB bus</td>
</tr>
<tr>
<td></td>
<td>[0].deviceId</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>Bus device ID</td>
</tr>
<tr>
<td></td>
<td>[0].id</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>ID e.g. 0bda:8821</td>
</tr>
<tr>
<td></td>
<td>[0].name</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>name, e.g. root hub</td>
</tr>
<tr>
<td></td>
<td>[0].type</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>type e.g. keyboard or mouse</td>
</tr>
<tr>
<td></td>
<td>[0].removable</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>is removable</td>
</tr>
<tr>
<td></td>
<td>[0].vendor</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>vendor e.g. Realtek</td>
</tr>
<tr>
<td></td>
<td>[0].manufacturer</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>manufacturer e.g. Chicony</td>
</tr>
<tr>
<td></td>
<td>[0].maxPower</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>max power e.g. 100mA</td>
</tr>
<tr>
<td></td>
<td>[0].serialNumber</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>serial number if available</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.usb().then(data => console.log(data));</code></pre class="example">
<pre class="example">
[
@ -232,18 +233,19 @@ si.usb().then(data => console.log(data));</code></pre class="example">
maxPower: '100mA',
serialNumber: null }
]</pre>
</tr>
</tr>
</tbody>
</table>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -287,4 +289,4 @@ si.usb().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -37,199 +37,200 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Battery</div>
<div class="text">
<p>In this section you will learn how to get battery information - if supported by system:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Battery Data</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.battery(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>battery information</td>
</tr>
<tr>
<td></td>
<td>hasbattery</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>indicates presence of battery</td>
</tr>
<tr>
<td></td>
<td>cyclecount</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>numbers of recharges</td>
</tr>
<tr>
<td></td>
<td>ischarging</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>indicates if battery is charging</td>
</tr>
<tr>
<td></td>
<td>designedcapacity</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>designed capacity of battery (mWh)</td>
</tr>
<tr>
<td></td>
<td>maxcapacity</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>max capacity of battery (mWh)</td>
</tr>
<tr>
<td></td>
<td>currentcapacity</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>current capacity of battery (mWh)</td>
</tr>
<tr>
<td></td>
<td>capacityUnit</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>capacity unit (mWh if possible)</td>
</tr>
<tr>
<td></td>
<td>voltage</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>current voltage of battery (V)</td>
</tr>
<tr>
<td></td>
<td>percent</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>charging level in percent</td>
</tr>
<tr>
<td></td>
<td>timeremaining</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>minutes left (if discharging)</td>
</tr>
<tr>
<td></td>
<td>acconnected</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>AC connected</td>
</tr>
<tr>
<td></td>
<td>type</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>battery type</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>model</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>manufacturer</td>
</tr>
<tr>
<td></td>
<td>serial</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>battery serial</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Battery</div>
<div class="text">
<p>In this section you will learn how to get battery information - if supported by system:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Battery Data</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.battery(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>battery information</td>
</tr>
<tr>
<td></td>
<td>hasbattery</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>indicates presence of battery</td>
</tr>
<tr>
<td></td>
<td>cyclecount</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>numbers of recharges</td>
</tr>
<tr>
<td></td>
<td>ischarging</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>indicates if battery is charging</td>
</tr>
<tr>
<td></td>
<td>designedcapacity</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>designed capacity of battery (mWh)</td>
</tr>
<tr>
<td></td>
<td>maxcapacity</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>max capacity of battery (mWh)</td>
</tr>
<tr>
<td></td>
<td>currentcapacity</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>current capacity of battery (mWh)</td>
</tr>
<tr>
<td></td>
<td>capacityUnit</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>capacity unit (mWh if possible)</td>
</tr>
<tr>
<td></td>
<td>voltage</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>current voltage of battery (V)</td>
</tr>
<tr>
<td></td>
<td>percent</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>charging level in percent</td>
</tr>
<tr>
<td></td>
<td>timeremaining</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>minutes left (if discharging)</td>
</tr>
<tr>
<td></td>
<td>acconnected</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>AC connected</td>
</tr>
<tr>
<td></td>
<td>type</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>battery type</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>model</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>manufacturer</td>
</tr>
<tr>
<td></td>
<td>serial</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>battery serial</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.battery().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
@ -249,24 +250,25 @@ si.battery().then(data => console.log(data));</code></pre class="example">
manufacturer: 'Apple',
serial: 'F9Y19860Y9AH9XBAX'
}</pre>
</tr>
</tbody>
</table>
<h2>Known issues</h2>
<h4>Windows Battery</h4>
</tr>
</tbody>
</table>
<h2>Known issues</h2>
<h4>Windows Battery</h4>
<p><span class="code">wmic</span> - which is used to determine temperature and battery sometimes needs to be run with admin
privileges. So if you do not get any values, try to run it again with according privileges. If you still do not get any
values, your system might not support this feature.</p>
<p><span class="code">wmic</span> - which is used to determine temperature and battery sometimes needs to be run with admin
privileges. So if you do not get any values, try to run it again with according privileges. If you still do not get any
values, your system might not support this feature.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -308,4 +310,4 @@ si.battery().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -33,49 +33,51 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader left">
<div class="title">Contributors</div>
<div class="text">
<p>Many thanks to all contributors. Really appreciate your support!</p>
<ul>
<li>Guillaume Legrain <a href="https://github.com/glegrain" rel="nofollow">glegrain</a></li>
<li>Riccardo Novaglia <a href="https://github.com/richy24" rel="nofollow">richy24</a></li>
<li>Quentin Busuttil <a href="https://github.com/Buzut" rel="nofollow">Buzut</a></li>
<li>lapsio <a href="https://github.com/lapsio" rel="nofollow">lapsio</a></li>
<li>csy <a href="https://github.com/csy1983" rel="nofollow">csy</a></li>
<li>Tiago Roldão <a href="https://github.com/tiagoroldao" rel="nofollow">tiagoroldao</a></li>
<li>dragonjet <a href="https://github.com/dragonjet" rel="nofollow">dragonjet</a></li>
<li>Adam Reis <a href="https://github.com/adamreisnz" rel="nofollow">adamreisnz</a></li>
<li>Jimi M <a href="https://github.com/ItsJimi" rel="nofollow">ItsJimi</a></li>
<li>Git² <a href="https://github.com/GitSquared" rel="nofollow">GitSquared</a></li>
<li>weiyin <a href="https://github.com/weiyin" rel="nofollow">weiyin</a></li>
<li>Jorai Rijsdijk <a href="https://github.com/Erackron" rel="nofollow">Erackron</a></li>
<li>Rasmus Porsager <a href="https://github.com/porsager" rel="nofollow">porsager</a></li>
<li>Nathan Patten <a href="https://github.com/nrpatten" rel="nofollow">nrpatten</a></li>
<li>Juan Campuzano <a href="https://github.com/juancampuzano" rel="nofollow">juancampuzano</a></li>
<li>Ricardo Polo <a href="https://github.com/ricardopolo" rel="nofollow">ricardopolo</a></li>
<li>Miłosz Dźwigała <a href="https://github.com/mily20001" rel="nofollow">mily20001</a></li>
<li>cconley717 <a href="https://github.com/cconley717" rel="nofollow">cconley717</a></li>
</ul>
<p>OSX Temperature: credits here are going to:</p>
<ul>
<li>Frank Stock <a href="https://github.com/pcafstockf" rel="nofollow">pcafstockf</a> for his work on <a href="https://github.com/pcafstockf/smc-reader" rel="nofollow">smc-reader</a></li>
</ul>
<p>Many thanks also to all who provided help or filed an issue. This really helps improving this package!</p>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader left">
<div class="title">Contributors</div>
<div class="text">
<p>Many thanks to all contributors. Really appreciate your support!</p>
<ul>
<li>Guillaume Legrain <a href="https://github.com/glegrain" rel="nofollow">glegrain</a></li>
<li>Riccardo Novaglia <a href="https://github.com/richy24" rel="nofollow">richy24</a></li>
<li>Quentin Busuttil <a href="https://github.com/Buzut" rel="nofollow">Buzut</a></li>
<li>lapsio <a href="https://github.com/lapsio" rel="nofollow">lapsio</a></li>
<li>csy <a href="https://github.com/csy1983" rel="nofollow">csy</a></li>
<li>Tiago Roldão <a href="https://github.com/tiagoroldao" rel="nofollow">tiagoroldao</a></li>
<li>dragonjet <a href="https://github.com/dragonjet" rel="nofollow">dragonjet</a></li>
<li>Adam Reis <a href="https://github.com/adamreisnz" rel="nofollow">adamreisnz</a></li>
<li>Jimi M <a href="https://github.com/ItsJimi" rel="nofollow">ItsJimi</a></li>
<li>Git² <a href="https://github.com/GitSquared" rel="nofollow">GitSquared</a></li>
<li>weiyin <a href="https://github.com/weiyin" rel="nofollow">weiyin</a></li>
<li>Jorai Rijsdijk <a href="https://github.com/Erackron" rel="nofollow">Erackron</a></li>
<li>Rasmus Porsager <a href="https://github.com/porsager" rel="nofollow">porsager</a></li>
<li>Nathan Patten <a href="https://github.com/nrpatten" rel="nofollow">nrpatten</a></li>
<li>Juan Campuzano <a href="https://github.com/juancampuzano" rel="nofollow">juancampuzano</a></li>
<li>Ricardo Polo <a href="https://github.com/ricardopolo" rel="nofollow">ricardopolo</a></li>
<li>Miłosz Dźwigała <a href="https://github.com/mily20001" rel="nofollow">mily20001</a></li>
<li>cconley717 <a href="https://github.com/cconley717" rel="nofollow">cconley717</a></li>
</ul>
<p>OSX Temperature: credits here are going to:</p>
<ul>
<li>Frank Stock <a href="https://github.com/pcafstockf" rel="nofollow">pcafstockf</a> for his work on <a href="https://github.com/pcafstockf/smc-reader" rel="nofollow">smc-reader</a></li>
</ul>
<p>Many thanks also to all who provided help or filed an issue. This really helps improving this package!</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -117,4 +119,4 @@
</script>
</body>
</html>
</html>

View File

@ -33,44 +33,46 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Copyright Information</div>
<div class="text">&copy; 2021 Sebstian Hildebrandt, <a href="https://github.com/sebhildebrandt/"> <i class="fab fa-github"></i> sebhildebrandt</a>, <a href="https://www.plus-innovations.com"><i class="fal fa-globe"></i> +innovations</a></div>
</div>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="row">
<div class="col-12 sectionheader">
<div class="title">License <img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></div>
<div class="text">
<p>Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:</p>
<p>The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.</p>
<p>THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.</p>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Copyright Information</div>
<div class="text">&copy; 2021 Sebstian Hildebrandt, <a href="https://github.com/sebhildebrandt/"> <i class="fab fa-github"></i> sebhildebrandt</a>, <a href="https://www.plus-innovations.com"><i class="fal fa-globe"></i> +innovations</a></div>
</div>
</div>
<div class="row">
<div class="col-12 sectionheader">
<div class="title">License <img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT license" /></div>
<div class="text">
<p>Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &quot;Software&quot;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:</p>
<p>The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.</p>
<p>THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -112,4 +114,4 @@
</script>
</body>
</html>
</html>

View File

@ -37,279 +37,280 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">CPU</div>
<div class="text">
<p>In this section you will learn how to get CPU data including current speed and temperature:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>CPU Data</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.cpu(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>CPU information object</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'Intel(R)'</td>
</tr>
<tr>
<td></td>
<td>brand</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'Core(TM)2 Duo'</td>
</tr>
<tr>
<td></td>
<td>speed</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>in GHz e.g. '3.40'</td>
</tr>
<tr>
<td></td>
<td>speedmin</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>in GHz e.g. '0.80'</td>
</tr>
<tr>
<td></td>
<td>speedmax</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>in GHz e.g. '3.90'</td>
</tr>
<tr>
<td></td>
<td>governor</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>e.g. 'powersave'</td>
</tr>
<tr>
<td></td>
<td>cores</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td># cores</td>
</tr>
<tr>
<td></td>
<td>physicalCores</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td># physical cores</td>
</tr>
<tr>
<td></td>
<td>efficiencyCores</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td># efficiency cores (ARM only)</td>
</tr>
<tr>
<td></td>
<td>performanceCores</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td># performance cores (ARM only)</td>
</tr>
<tr>
<td></td>
<td>processors</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td># processors</td>
</tr>
<tr>
<td></td>
<td>socket</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>socket type e.g. &quot;LGA1356&quot;</td>
</tr>
<tr>
<td></td>
<td>vendor</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>vendor ID</td>
</tr>
<tr>
<td></td>
<td>family</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>processor family</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>processor model</td>
</tr>
<tr>
<td></td>
<td>stepping</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>processor stepping</td>
</tr>
<tr>
<td></td>
<td>revision</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>revision</td>
</tr>
<tr>
<td></td>
<td>voltage</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td>voltage</td>
</tr>
<tr>
<td></td>
<td>cache</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>cache in bytes (object)</td>
</tr>
<tr>
<td></td>
<td>cache.l1d</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>L1D (data) size</td>
</tr>
<tr>
<td></td>
<td>cache.l1i</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>L1I (instruction) size</td>
</tr>
<tr>
<td></td>
<td>cache.l2</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>L2 size</td>
</tr>
<tr>
<td></td>
<td>cache.l3</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>L3 size</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">CPU</div>
<div class="text">
<p>In this section you will learn how to get CPU data including current speed and temperature:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>CPU Data</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.cpu(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>CPU information object</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'Intel(R)'</td>
</tr>
<tr>
<td></td>
<td>brand</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'Core(TM)2 Duo'</td>
</tr>
<tr>
<td></td>
<td>speed</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>in GHz e.g. '3.40'</td>
</tr>
<tr>
<td></td>
<td>speedmin</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>in GHz e.g. '0.80'</td>
</tr>
<tr>
<td></td>
<td>speedmax</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>in GHz e.g. '3.90'</td>
</tr>
<tr>
<td></td>
<td>governor</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>e.g. 'powersave'</td>
</tr>
<tr>
<td></td>
<td>cores</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td># cores</td>
</tr>
<tr>
<td></td>
<td>physicalCores</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td># physical cores</td>
</tr>
<tr>
<td></td>
<td>efficiencyCores</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td># efficiency cores (ARM only)</td>
</tr>
<tr>
<td></td>
<td>performanceCores</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td># performance cores (ARM only)</td>
</tr>
<tr>
<td></td>
<td>processors</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td># processors</td>
</tr>
<tr>
<td></td>
<td>socket</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>socket type e.g. &quot;LGA1356&quot;</td>
</tr>
<tr>
<td></td>
<td>vendor</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>vendor ID</td>
</tr>
<tr>
<td></td>
<td>family</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>processor family</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>processor model</td>
</tr>
<tr>
<td></td>
<td>stepping</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>processor stepping</td>
</tr>
<tr>
<td></td>
<td>revision</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>revision</td>
</tr>
<tr>
<td></td>
<td>voltage</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td>voltage</td>
</tr>
<tr>
<td></td>
<td>cache</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>cache in bytes (object)</td>
</tr>
<tr>
<td></td>
<td>cache.l1d</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>L1D (data) size</td>
</tr>
<tr>
<td></td>
<td>cache.l1i</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>L1I (instruction) size</td>
</tr>
<tr>
<td></td>
<td>cache.l2</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>L2 size</td>
</tr>
<tr>
<td></td>
<td>cache.l3</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>L3 size</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.cpu().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
@ -332,142 +333,142 @@ si.cpu().then(data => console.log(data));</code></pre class="example">
cache: { l1d: 262144, l1i: 262144, l2: 2, l3: 16 },
flags: 'fpu vme de pse ...'
}</pre>
</tr>
<tr>
<td>si.cpuFlags(cb)</td>
<td>: string</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>CPU flags</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tr>
<tr>
<td>si.cpuFlags(cb)</td>
<td>: string</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>CPU flags</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.cpuFlags().then(data => console.log(data));</code></pre class="example">
<pre class="example">
fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
</pre>
</tr>
<tr>
<td>si.cpuCache(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>CPU cache sizes object</td>
</tr>
<tr>
<td></td>
<td>l1d</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>L1D size</td>
</tr>
<tr>
<td></td>
<td>l1i</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>L1I size</td>
</tr>
<tr>
<td></td>
<td>l2</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>L2 size</td>
</tr>
<tr>
<td></td>
<td>l3</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>L3 size</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tr>
<tr>
<td>si.cpuCache(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>CPU cache sizes object</td>
</tr>
<tr>
<td></td>
<td>l1d</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>L1D size</td>
</tr>
<tr>
<td></td>
<td>l1i</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>L1I size</td>
</tr>
<tr>
<td></td>
<td>l2</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>L2 size</td>
</tr>
<tr>
<td></td>
<td>l3</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>L3 size</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.cpuCache().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{ l1d: 262144, l1i: 262144, l2: 2, l3: 16 }
</pre>
</tr>
<tr>
<td>si.cpuCurrentspeed(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>current CPU speed (GHz) object</td>
</tr>
<tr>
<td></td>
<td>avg</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>avg CPU speed (all cores)</td>
</tr>
<tr>
<td></td>
<td>min</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>min CPU speed (all cores)</td>
</tr>
<tr>
<td></td>
<td>max</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>max CPU speed (all cores)</td>
</tr>
<tr>
<td></td>
<td>cores</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>CPU speed per core (array)</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tr>
<tr>
<td>si.cpuCurrentspeed(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>current CPU speed (GHz) object</td>
</tr>
<tr>
<td></td>
<td>avg</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>avg CPU speed (all cores)</td>
</tr>
<tr>
<td></td>
<td>min</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>min CPU speed (all cores)</td>
</tr>
<tr>
<td></td>
<td>max</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>max CPU speed (all cores)</td>
</tr>
<tr>
<td></td>
<td>cores</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>CPU speed per core (array)</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.cpuCurrentspeed().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
@ -482,84 +483,85 @@ si.cpuCurrentspeed().then(data => console.log(data));</code></pre class="example
]
}
</pre>
</tr>
<tr>
<td>si.cpuTemperature(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X*</td>
<td>X</td>
<td></td>
<td>CPU temperature (if supported)</td>
</tr>
<tr>
<td></td>
<td>main</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>main temperature (avg)</td>
</tr>
<tr>
<td></td>
<td>cores</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>array of temperatures</td>
</tr>
<tr>
<td></td>
<td>max</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>max temperature</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tr>
<tr>
<td>si.cpuTemperature(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X*</td>
<td>X</td>
<td></td>
<td>CPU temperature (if supported)</td>
</tr>
<tr>
<td></td>
<td>main</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>main temperature (avg)</td>
</tr>
<tr>
<td></td>
<td>cores</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>array of temperatures</td>
</tr>
<tr>
<td></td>
<td>max</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>max temperature</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.cpuTemperature().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{ main: 42, cores: [], max: 42 }
</pre>
</tr>
</tbody>
</table>
<h2>Known issues</h2>
<h4>macOS - Temperature</h4>
</tr>
</tbody>
</table>
<h2>Known issues</h2>
<h4>macOS - Temperature</h4>
<p>To be able to measure temperature on macOS I created a little additional package. Due to some difficulties in NPM with <span class="code">optionalDependencies</span>
I unfortunately was getting unexpected warnings on other platforms. So I decided to drop this optional dependency for macOS - so by default,
you will not get correct values.</p>
<p>To be able to measure temperature on macOS I created a little additional package. Due to some difficulties in NPM with <span class="code">optionalDependencies</span>
I unfortunately was getting unexpected warnings on other platforms. So I decided to drop this optional dependency for macOS - so by default,
you will not get correct values.</p>
<p>But if you need to detect macOS temperature just run the following additional installation command:</p>
<p>But if you need to detect macOS temperature just run the following additional installation command:</p>
<pre>$ npm install osx-temperature-sensor --save</pre>
<p>systeminformation will then detect this additional library and return the temperature when calling systeminformations standard function <span class="code">cpuTemperature()</span></p>
<pre>$ npm install osx-temperature-sensor --save</pre>
<p>systeminformation will then detect this additional library and return the temperature when calling systeminformations standard function <span class="code">cpuTemperature()</span></p>
<h4>Windows Temperature</h4>
<h4>Windows Temperature</h4>
<p><span class="code">wmic</span> - which is used to determine battery sometimes needs to be run with admin
privileges. So if you do not get any values, try to run it again with according privileges. If you still do not get any
values, your system might not support this feature. </p>
<p><span class="code">wmic</span> - which is used to determine battery sometimes needs to be run with admin
privileges. So if you do not get any values, try to run it again with according privileges. If you still do not get any
values, your system might not support this feature. </p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -601,4 +603,4 @@ si.cpuTemperature().then(data => console.log(data));</code></pre class="example"
</script>
</body>
</html>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -37,128 +37,129 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">General</div>
<div class="text">
<p>In this section you will learn how to get general systeminformation data. We will also cover the "get" and "get-all" functions to get partial or all data with one single call.</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Lib-Version and Time/Timezone</h2>
<p>The first two functions just give back systeminformation library version number and time/timezone information of your machine. These are the only two functions not returning a promise (so they are not async functions):</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">General</div>
<div class="text">
<p>In this section you will learn how to get general systeminformation data. We will also cover the "get" and "get-all" functions to get partial or all data with one single call.</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Lib-Version and Time/Timezone</h2>
<p>The first two functions just give back systeminformation library version number and time/timezone information of your machine. These are the only two functions not returning a promise (so they are not async functions):</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.version()</td>
<td>: string</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>lib version (no callback/promise)</td>
</tr>
<tr>
<td>si.time()</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>object (no callback/promise) with:</td>
</tr>
<tr>
<td></td>
<td>current</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>local (server) time</td>
</tr>
<tr>
<td></td>
<td>uptime</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>uptime in number of seconds</td>
</tr>
<tr>
<td></td>
<td>timezone</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>e.g. GMT+0200</td>
</tr>
<tr>
<td></td>
<td>timezoneName</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>e.g. CEST</td>
</tr>
</tbody>
</table>
<p>Keep in mind, that there is another function <span class="code">si.versions()</span> that will return versions of other system libraries and software packages</p>
<h2>Get Defined Result Object</h2>
<p>Normally you would call each of the functions (where you want to get detailed system information) seperately. The docs pages contain a full reference (with examples) for each available function. But there is also another really handy way to get a self-defined result object in one single call:</p>
<p>The <span class="code">si.get()</span> function is an alternative, where you can obtain several system information data in one call. You can define a json object which represents the data structure you are expecting and the <span class="code">si.get()</span> call will then return all of the requested data in a single result object</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.version()</td>
<td>: string</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>lib version (no callback/promise)</td>
</tr>
<tr>
<td>si.time()</td>
<td>si.get(valueObject,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>object (no callback/promise) with:</td>
<td>get partial data at once<br>Specify return object for all<br>values that should be returned:</td>
</tr>
<tr>
<tr class="example">
<td></td>
<td>current</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>local (server) time</td>
</tr>
<tr>
<td></td>
<td>uptime</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>uptime in number of seconds</td>
</tr>
<tr>
<td></td>
<td>timezone</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>e.g. GMT+0200</td>
</tr>
<tr>
<td></td>
<td>timezoneName</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>e.g. CEST</td>
</tr>
</tbody>
</table>
<p>Keep in mind, that there is another function <span class="code">si.versions()</span> that will return versions of other system libraries and software packages</p>
<h2>Get Defined Result Object</h2>
<p>Normally you would call each of the functions (where you want to get detailed system information) seperately. The docs pages contain a full reference (with examples) for each available function. But there is also another really handy way to get a self-defined result object in one single call:</p>
<p>The <span class="code">si.get()</span> function is an alternative, where you can obtain several system information data in one call. You can define a json object which represents the data structure you are expecting and the <span class="code">si.get()</span> call will then return all of the requested data in a single result object</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tr>
<td>si.get(valueObject,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>get partial data at once<br>Specify return object for all<br>values that should be returned:</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
// define all values, you want to get back
valueObject = {
@ -199,40 +200,40 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
}
}
</pre>
</tr>
</tbody>
</table>
<p>The key names of the <span class="code">valueObject</span> must be exactly the same as the representing function within systeminformation.</p>
<h3>Providing parameters to the get() function</h3>
<p>Now you can also provide parameters to get() functions (where needed). Just pass the parameters in parentheses right after the wanted keys: have a look at the folloging example:</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tr>
<td>si.get(valueObject,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>example with parameters:<br>value in paretheses goes as parameter<br>to the given function:</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tbody>
</table>
<p>The key names of the <span class="code">valueObject</span> must be exactly the same as the representing function within systeminformation.</p>
<h3>Providing parameters to the get() function</h3>
<p>Now you can also provide parameters to get() functions (where needed). Just pass the parameters in parentheses right after the wanted keys: have a look at the folloging example:</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tr>
<td>si.get(valueObject,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>example with parameters:<br>value in paretheses goes as parameter<br>to the given function:</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
// define all values, you want to get back
// here the value in paretheses goes as a parameter
@ -254,69 +255,70 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
}
}
</pre>
</tr>
</tbody>
</table>
<h2>Get All At Once</h2>
<p>The following three functions <span class="code">si.getStaticData()</span>, <span class="code">si.getDynamicData()</span> and <span class="code">si.getAllData()</span> will return most of the available data in a single result object:</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.getStaticData(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>all static data at once</td>
</tr>
<tr>
<td>si.getDynamicData(srv,iface,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>all dynamic data at once<br>Specify services and interfaces to monitor<br>Defaults to first external network interface<br>Pass "*" for ALL services (linux/win only)<br>Pass "*" for ALL network interfaces</td>
</tr>
<tr>
<td>si.getAllData(srv,iface,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>all data at once<br>Specify services and interfaces to monitor<br>Defaults to first external network interface<br>Pass "*" for ALL services (linux/win only)<br>Pass "*" for ALL network interfaces</td>
</tr>
</tbody>
</table>
<p><strong>Static data</strong> is all hardware related (or more or less constant) data like system, baseboard, bios, OS, versions, cpu, network interfces, memory and disk layout</p>
<p><strong>Dynamic data</strong> will return user, cpu-speed, load, processes, services, temperature, file system, network and disk stats, ... </p>
<p>As not all funtions are supported in each operating system the result object might be different in each OS.</p>
<p><strong>ATTENTION</strong>: Use this only if you really need ALL information. Especially on Windows this can take really long (up to 20 seconds) because the underlying <span class="code">WMIC</span> command is very slow when using it the first time.</p>
</tbody>
</table>
<h2>Get All At Once</h2>
<p>The following three functions <span class="code">si.getStaticData()</span>, <span class="code">si.getDynamicData()</span> and <span class="code">si.getAllData()</span> will return most of the available data in a single result object:</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.getStaticData(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>all static data at once</td>
</tr>
<tr>
<td>si.getDynamicData(srv,iface,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>all dynamic data at once<br>Specify services and interfaces to monitor<br>Defaults to first external network interface<br>Pass "*" for ALL services (linux/win only)<br>Pass "*" for ALL network interfaces</td>
</tr>
<tr>
<td>si.getAllData(srv,iface,cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>all data at once<br>Specify services and interfaces to monitor<br>Defaults to first external network interface<br>Pass "*" for ALL services (linux/win only)<br>Pass "*" for ALL network interfaces</td>
</tr>
</tbody>
</table>
<p><strong>Static data</strong> is all hardware related (or more or less constant) data like system, baseboard, bios, OS, versions, cpu, network interfces, memory and disk layout</p>
<p><strong>Dynamic data</strong> will return user, cpu-speed, load, processes, services, temperature, file system, network and disk stats, ... </p>
<p>As not all funtions are supported in each operating system the result object might be different in each OS.</p>
<p><strong>ATTENTION</strong>: Use this only if you really need ALL information. Especially on Windows this can take really long (up to 20 seconds) because the underlying <span class="code">WMIC</span> command is very slow when using it the first time.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -358,4 +360,4 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
</script>
</body>
</html>
</html>

View File

@ -37,50 +37,51 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Quick Start</div>
<div class="text">
<p>Lightweight collection of 40+ functions to retrieve detailed hardware, system and OS information.</p>
<ul>
<li>simple to use</li>
<li>get detailed information about system, cpu, baseboard, battery, memory, disks/filesystem, network, docker, software, services and processes</li>
<li>supports Linux, macOS, partial Windows, FreeBSD, OpenBSD, NetBSD and SunOS support</li>
<li>no npm dependencies (for production)</li>
</ul>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Quick Start</div>
<div class="text">
<p>Lightweight collection of 40+ functions to retrieve detailed hardware, system and OS information.</p>
<ul>
<li>simple to use</li>
<li>get detailed information about system, cpu, baseboard, battery, memory, disks/filesystem, network, docker, software, services and processes</li>
<li>supports Linux, macOS, partial Windows, FreeBSD, OpenBSD, NetBSD and SunOS support</li>
<li>no npm dependencies (for production)</li>
</ul>
<h2>Core Concept</h2>
<p><a href="https://nodejs.org/en/" rel="nofollow">Node.js</a> comes with some basic OS information, but I always wanted a little more. So I came up to write this
little library. This library is still work in progress. It requires node.js version 4.0 and above.</p>
<h2>Core Concept</h2>
<p><a href="https://nodejs.org/en/" rel="nofollow">Node.js</a> comes with some basic OS information, but I always wanted a little more. So I came up to write this
little library. This library is still work in progress. It requires node.js version 4.0 and above.</p>
<p>I was able to test it on several Debian, Raspbian, Ubuntu distributions as well as macOS (Mavericks, Yosemite, El Captain, Sierra, High Sierra, Mojave) and some Windows 7, Windows 10, FreeBSD, OpenBSD, NetBSD and SunOS machines.
Not all functions are supported on all operating systems. Have a look at the function reference in the docs to get further details.</p>
<p>If you have comments, suggestions &amp; reports, please feel free to contact me on <a href="https://github.com/sebhildebrandt/systeminformation/issues">github</a>!</p>
<p>I also created a nice little command line tool called <a href="https://github.com/sebhildebrandt/mmon" rel="nofollow">mmon</a> (micro-monitor) for Linux and macOS, also available via <a href="https://github.com/sebhildebrandt/mmon" rel="nofollow">github</a> and <a href="https://npmjs.org/package/mmon" rel="nofollow">npm</a></p>
<p>I was able to test it on several Debian, Raspbian, Ubuntu distributions as well as macOS (Mavericks, Yosemite, El Captain, Sierra, High Sierra, Mojave) and some Windows 7, Windows 10, FreeBSD, OpenBSD, NetBSD and SunOS machines.
Not all functions are supported on all operating systems. Have a look at the function reference in the docs to get further details.</p>
<p>If you have comments, suggestions &amp; reports, please feel free to contact me on <a href="https://github.com/sebhildebrandt/systeminformation/issues">github</a>!</p>
<p>I also created a nice little command line tool called <a href="https://github.com/sebhildebrandt/mmon" rel="nofollow">mmon</a> (micro-monitor) for Linux and macOS, also available via <a href="https://github.com/sebhildebrandt/mmon" rel="nofollow">github</a> and <a href="https://npmjs.org/package/mmon" rel="nofollow">npm</a></p>
<h3>Attention:</h3>
<p>This library is supposed to be used as a <a href="https://nodejs.org/en/" rel="nofollow">node.js</a> backend/server-side library and will definilely not work within a browser.</p>
<h3>Attention:</h3>
<p>This library is supposed to be used as a <a href="https://nodejs.org/en/" rel="nofollow">node.js</a> backend/server-side library and will definilely not work within a browser.</p>
<h2>Installation (old version 4)</h2>
<pre>$ npm install systeminformation@4 —-save</pre>
<h2>Usage</h2>
<p>All functions (except <span class="code">version</span> and <span class="code">time</span>) are implemented as asynchronous functions. Here a small example how to use them:</p>
<pre><code class="js">const si = require('systeminformation');
<h2>Installation (old version 4)</h2>
<pre>$ npm install systeminformation@4 —-save</pre>
<h2>Usage</h2>
<p>All functions (except <span class="code">version</span> and <span class="code">time</span>) are implemented as asynchronous functions. Here a small example how to use them:</p>
<pre><code class="js">const si = require('systeminformation');
// promises style - new since version 3
si.cpu()
.then(data => console.log(data))
.catch(error => console.error(error));
</code></pre>
<h2>Callback, Promises, Async Await</h2>
<p>Remember: all functions (except <span class="code">version</span> and <span class="code">time</span>) are implemented as asynchronous functions! There are now three ways to consume them:</p>
<p><strong>Callback Style</strong></p>
<pre><code class="js">const si = require('systeminformation');
<h2>Callback, Promises, Async Await</h2>
<p>Remember: all functions (except <span class="code">version</span> and <span class="code">time</span>) are implemented as asynchronous functions! There are now three ways to consume them:</p>
<p><strong>Callback Style</strong></p>
<pre><code class="js">const si = require('systeminformation');
si.cpu(function(data) {
console.log('CPU Information:');
@ -91,12 +92,12 @@ si.cpu(function(data) {
console.log('- physical cores: ' + data.physicalCores);
console.log('...');
})</code></pre><br>
<p><strong>Promise Style</strong></p>
<p>Promises style is new since version 3.0.
<p></p>
<p><strong>Promise Style</strong></p>
<p>Promises style is new since version 3.0.
<p></p>
<p>When omitting callback parameter (cb), then you can use all function in a promise oriented way. All functions (exept of <span class="code">version</span> and <span class="code">time</span>) are returning a promise, that you can consume:</p>
<pre><code class="js">const si = require('systeminformation');
<p>When omitting callback parameter (cb), then you can use all function in a promise oriented way. All functions (exept of <span class="code">version</span> and <span class="code">time</span>) are returning a promise, that you can consume:</p>
<pre><code class="js">const si = require('systeminformation');
si.cpu()
.then(data => {
@ -109,9 +110,9 @@ si.cpu()
console.log('...');
})
.catch(error => console.error(error));</code></pre><br>
<p><strong>Async/Await Style</strong></p>
<p>Since node v7.6 you can also use the async / await pattern. The above example would then look like this:</p>
<pre><code class="js">const si = require('systeminformation');
<p><strong>Async/Await Style</strong></p>
<p>Since node v7.6 you can also use the async / await pattern. The above example would then look like this:</p>
<pre><code class="js">const si = require('systeminformation');
async function cpuData() {
try {
@ -127,16 +128,17 @@ async function cpuData() {
console.log(e)
}
}</code></pre><br>
<p><strong>Issues</strong></p>
<p>If you discover some empty or incorrect values, please be sure to first have a look at the <a href="issues.html">Known issues</a> section.</p>
<p><strong>Issues</strong></p>
<p>If you discover some empty or incorrect values, please be sure to first have a look at the <a href="issues.html">Known issues</a> section.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -178,4 +180,4 @@ async function cpuData() {
</script>
</body>
</html>
</html>

View File

@ -37,439 +37,440 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Graphics</div>
<div class="text">
<p>In this section you will learn how to get information about installed graphics conrollers and connected displays:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Graphics Controllers, Displays</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.graphics(cb)</td>
<td>{...}</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>arrays of graphics controllers and displays</td>
</tr>
<tr>
<td></td>
<td>controllers[]</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>graphics controllers array</td>
</tr>
<tr>
<td></td>
<td>...[0].model</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>graphics controller model</td>
</tr>
<tr>
<td></td>
<td>...[0].vendor</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. ATI</td>
</tr>
<tr>
<td></td>
<td>...[0].bus</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>on which bus (e.g. PCIe)</td>
</tr>
<tr>
<td></td>
<td>...[0].vram</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>VRAM size (in MB)</td>
</tr>
<tr>
<td></td>
<td>...[0].vramDynamic</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>true if dynamicly allocated ram</td>
</tr>
<tr>
<td></td>
<td>...[0].subDeviceId</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - sub device ID</td>
</tr>
<tr>
<td></td>
<td>...[0].driverVersion</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - driver version</td>
</tr>
<tr>
<td></td>
<td>...[0].name</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - name</td>
</tr>
<tr>
<td></td>
<td>...[0].pciBus</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - PCI bus ID</td>
</tr>
<tr>
<td></td>
<td>...[0].fanSpeed</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - fan speed</td>
</tr>
<tr>
<td></td>
<td>...[0].memory total</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - memory total</td>
</tr>
<tr>
<td></td>
<td>...[0].memoryUsed</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - memory used</td>
</tr>
<tr>
<td></td>
<td>...[0].memoryFree</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - memory free</td>
</tr>
<tr>
<td></td>
<td>...[0].utilizationGpu</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - utilization GPU</td>
</tr>
<tr>
<td></td>
<td>...[0].utilizationMemory</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - utilization memory</td>
</tr>
<tr>
<td></td>
<td>...[0].temperatureGpu</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - temperature GPU</td>
</tr>
<tr>
<td></td>
<td>...[0].temperatureMemory</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - temperature memory</td>
</tr>
<tr>
<td></td>
<td>...[0].powerDraw</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - power draw</td>
</tr>
<tr>
<td></td>
<td>...[0].powerLimit</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - power limit</td>
</tr>
<tr>
<td></td>
<td>...[0].clockCore</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - clock core</td>
</tr>
<tr>
<td></td>
<td>...[0].clockMemory</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - clock memory</td>
</tr>
<tr>
<td></td>
<td>displays[]</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>monitor/display array</td>
</tr>
<tr>
<td></td>
<td>...[0].vendor</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>monitor/display vendor</td>
</tr>
<tr>
<td></td>
<td>...[0].deviceName</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>e.g. \\.\DISPLAY1</td>
</tr>
<tr>
<td></td>
<td>...[0].model</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>monitor/display model</td>
</tr>
<tr>
<td></td>
<td>...[0].main</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>true if main monitor</td>
</tr>
<tr>
<td></td>
<td>...[0].builtin</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>true if built in monitor</td>
</tr>
<tr>
<td></td>
<td>...[0].connection</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. DisplayPort, HDMI</td>
</tr>
<tr>
<td></td>
<td>...[0].sizex</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>size in mm horizontal</td>
</tr>
<tr>
<td></td>
<td>...[0].sizey</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>size in mm vertical</td>
</tr>
<tr>
<td></td>
<td>...[0].pixeldepth</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>color depth in bits</td>
</tr>
<tr>
<td></td>
<td>...[0].resolutionx</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>pixel horizontal</td>
</tr>
<tr>
<td></td>
<td>...[0].resolutiony</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>pixel vertical</td>
</tr>
<tr>
<td></td>
<td>...[0].currentResX</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>current pixel horizontal</td>
</tr>
<tr>
<td></td>
<td>...[0].currentResY</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>current pixel vertical</td>
</tr>
<tr>
<td></td>
<td>...[0].positionX</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>screen position X</td>
</tr>
<tr>
<td></td>
<td>...[0].positionY</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>screen position Y</td>
</tr>
<tr>
<td></td>
<td>...[0].currentRefreshRate</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>current screen refresh rate</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Graphics</div>
<div class="text">
<p>In this section you will learn how to get information about installed graphics conrollers and connected displays:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Graphics Controllers, Displays</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.graphics(cb)</td>
<td>{...}</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>arrays of graphics controllers and displays</td>
</tr>
<tr>
<td></td>
<td>controllers[]</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>graphics controllers array</td>
</tr>
<tr>
<td></td>
<td>...[0].model</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>graphics controller model</td>
</tr>
<tr>
<td></td>
<td>...[0].vendor</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. ATI</td>
</tr>
<tr>
<td></td>
<td>...[0].bus</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>on which bus (e.g. PCIe)</td>
</tr>
<tr>
<td></td>
<td>...[0].vram</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>VRAM size (in MB)</td>
</tr>
<tr>
<td></td>
<td>...[0].vramDynamic</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>true if dynamicly allocated ram</td>
</tr>
<tr>
<td></td>
<td>...[0].subDeviceId</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - sub device ID</td>
</tr>
<tr>
<td></td>
<td>...[0].driverVersion</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - driver version</td>
</tr>
<tr>
<td></td>
<td>...[0].name</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - name</td>
</tr>
<tr>
<td></td>
<td>...[0].pciBus</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - PCI bus ID</td>
</tr>
<tr>
<td></td>
<td>...[0].fanSpeed</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - fan speed</td>
</tr>
<tr>
<td></td>
<td>...[0].memory total</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - memory total</td>
</tr>
<tr>
<td></td>
<td>...[0].memoryUsed</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - memory used</td>
</tr>
<tr>
<td></td>
<td>...[0].memoryFree</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - memory free</td>
</tr>
<tr>
<td></td>
<td>...[0].utilizationGpu</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - utilization GPU</td>
</tr>
<tr>
<td></td>
<td>...[0].utilizationMemory</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - utilization memory</td>
</tr>
<tr>
<td></td>
<td>...[0].temperatureGpu</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - temperature GPU</td>
</tr>
<tr>
<td></td>
<td>...[0].temperatureMemory</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - temperature memory</td>
</tr>
<tr>
<td></td>
<td>...[0].powerDraw</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - power draw</td>
</tr>
<tr>
<td></td>
<td>...[0].powerLimit</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - power limit</td>
</tr>
<tr>
<td></td>
<td>...[0].clockCore</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - clock core</td>
</tr>
<tr>
<td></td>
<td>...[0].clockMemory</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>(pptional nvidia-smi) - clock memory</td>
</tr>
<tr>
<td></td>
<td>displays[]</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>monitor/display array</td>
</tr>
<tr>
<td></td>
<td>...[0].vendor</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>monitor/display vendor</td>
</tr>
<tr>
<td></td>
<td>...[0].deviceName</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>e.g. \\.\DISPLAY1</td>
</tr>
<tr>
<td></td>
<td>...[0].model</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>monitor/display model</td>
</tr>
<tr>
<td></td>
<td>...[0].main</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>true if main monitor</td>
</tr>
<tr>
<td></td>
<td>...[0].builtin</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td></td>
<td>true if built in monitor</td>
</tr>
<tr>
<td></td>
<td>...[0].connection</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. DisplayPort, HDMI</td>
</tr>
<tr>
<td></td>
<td>...[0].sizex</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>size in mm horizontal</td>
</tr>
<tr>
<td></td>
<td>...[0].sizey</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>size in mm vertical</td>
</tr>
<tr>
<td></td>
<td>...[0].pixeldepth</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>color depth in bits</td>
</tr>
<tr>
<td></td>
<td>...[0].resolutionx</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>pixel horizontal</td>
</tr>
<tr>
<td></td>
<td>...[0].resolutiony</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>pixel vertical</td>
</tr>
<tr>
<td></td>
<td>...[0].currentResX</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>current pixel horizontal</td>
</tr>
<tr>
<td></td>
<td>...[0].currentResY</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>current pixel vertical</td>
</tr>
<tr>
<td></td>
<td>...[0].positionX</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>screen position X</td>
</tr>
<tr>
<td></td>
<td>...[0].positionY</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>screen position Y</td>
</tr>
<tr>
<td></td>
<td>...[0].currentRefreshRate</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>current screen refresh rate</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.graphics().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
@ -502,17 +503,18 @@ si.graphics().then(data => console.log(data));</code></pre class="example">
}
]
}</pre>
</tr>
</tbody>
</table>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -554,4 +556,4 @@ si.graphics().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -180,152 +180,154 @@
</div>
</header>
<section class="container quickstart">
<div class="row">
<div class="col-12 sectionheader index">
<div class="title">Overview</div>
<div class="subtitle">Lightweight collection of 40+ functions to retrieve detailed hardware, system and OS information. For Linux, macOS, partial Windows, FreeBSD, OpenBSD, NetBSD and SunOS support</div>
<div class="npmicons">
<a href="https://npmjs.org/package/systeminformation" rel="nofollow"><img src="https://camo.githubusercontent.com/df25636cbefadf18ca1532e3bdcd0d2794235e19/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f73797374656d696e666f726d6174696f6e2e7376673f7374796c653d666c61742d737175617265" alt="NPM Version" data-canonical-src="https://img.shields.io/npm/v/systeminformation.svg?style=flat-square" style="max-width:100%;"></a>
<a href="https://david-dm.org/sebhildebrandt/systeminformation" rel="nofollow"><img src="https://camo.githubusercontent.com/69739c043c2be3a38545f105b89381a2a6310f59/68747470733a2f2f696d672e736869656c64732e696f2f64617669642f73656268696c64656272616e64742f73797374656d696e666f726d6174696f6e2e7376673f7374796c653d666c61742d737175617265" alt="deps status" data-canonical-src="https://img.shields.io/david/sebhildebrandt/systeminformation.svg?style=flat-square" style="max-width:100%;"></a>
<a href="https://lgtm.com/projects/g/sebhildebrandt/systeminformation/context:javascript" rel="nofollow"><img src="https://camo.githubusercontent.com/08409d6fb3794545416e1a40ca75172b54d34692/68747470733a2f2f696d672e736869656c64732e696f2f6c67746d2f67726164652f6a6176617363726970742f672f73656268696c64656272616e64742f73797374656d696e666f726d6174696f6e2e7376673f7374796c653d666c61742d737175617265" alt="Code Quality: Javascript" data-canonical-src="https://img.shields.io/lgtm/grade/javascript/g/sebhildebrandt/systeminformation.svg?style=flat-square" style="max-width:100%;"></a>
<a href="https://lgtm.com/projects/g/sebhildebrandt/systeminformation/alerts" rel="nofollow"><img src="https://camo.githubusercontent.com/66428127fdde80fc8247a0c1df4c651f3a6b1c0a/68747470733a2f2f696d672e736869656c64732e696f2f6c67746d2f616c657274732f672f73656268696c64656272616e64742f73797374656d696e666f726d6174696f6e2e7376673f7374796c653d666c61742d737175617265" alt="Total alerts" data-canonical-src="https://img.shields.io/lgtm/alerts/g/sebhildebrandt/systeminformation.svg?style=flat-square" style="max-width:100%;"></a>
<a href="https://github.com/sebhildebrandt/systeminformation/blob/master/LICENSE"><img src="https://camo.githubusercontent.com/4b5966a2a252ee0f241a1e03b13417178eb4964f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c61742d737175617265" alt="MIT license" data-canonical-src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" style="max-width:100%;"></a>
<div class="container-fluid">
<section class="container quickstart">
<div class="row">
<div class="col-12 sectionheader index">
<div class="title">Overview</div>
<div class="subtitle">Lightweight collection of 40+ functions to retrieve detailed hardware, system and OS information. For Linux, macOS, partial Windows, FreeBSD, OpenBSD, NetBSD and SunOS support</div>
<div class="npmicons">
<a href="https://npmjs.org/package/systeminformation" rel="nofollow"><img src="https://camo.githubusercontent.com/df25636cbefadf18ca1532e3bdcd0d2794235e19/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f73797374656d696e666f726d6174696f6e2e7376673f7374796c653d666c61742d737175617265" alt="NPM Version" data-canonical-src="https://img.shields.io/npm/v/systeminformation.svg?style=flat-square" style="max-width:100%;"></a>
<a href="https://david-dm.org/sebhildebrandt/systeminformation" rel="nofollow"><img src="https://camo.githubusercontent.com/69739c043c2be3a38545f105b89381a2a6310f59/68747470733a2f2f696d672e736869656c64732e696f2f64617669642f73656268696c64656272616e64742f73797374656d696e666f726d6174696f6e2e7376673f7374796c653d666c61742d737175617265" alt="deps status" data-canonical-src="https://img.shields.io/david/sebhildebrandt/systeminformation.svg?style=flat-square" style="max-width:100%;"></a>
<a href="https://lgtm.com/projects/g/sebhildebrandt/systeminformation/context:javascript" rel="nofollow"><img src="https://camo.githubusercontent.com/08409d6fb3794545416e1a40ca75172b54d34692/68747470733a2f2f696d672e736869656c64732e696f2f6c67746d2f67726164652f6a6176617363726970742f672f73656268696c64656272616e64742f73797374656d696e666f726d6174696f6e2e7376673f7374796c653d666c61742d737175617265" alt="Code Quality: Javascript" data-canonical-src="https://img.shields.io/lgtm/grade/javascript/g/sebhildebrandt/systeminformation.svg?style=flat-square" style="max-width:100%;"></a>
<a href="https://lgtm.com/projects/g/sebhildebrandt/systeminformation/alerts" rel="nofollow"><img src="https://camo.githubusercontent.com/66428127fdde80fc8247a0c1df4c651f3a6b1c0a/68747470733a2f2f696d672e736869656c64732e696f2f6c67746d2f616c657274732f672f73656268696c64656272616e64742f73797374656d696e666f726d6174696f6e2e7376673f7374796c653d666c61742d737175617265" alt="Total alerts" data-canonical-src="https://img.shields.io/lgtm/alerts/g/sebhildebrandt/systeminformation.svg?style=flat-square" style="max-width:100%;"></a>
<a href="https://github.com/sebhildebrandt/systeminformation/blob/master/LICENSE"><img src="https://camo.githubusercontent.com/4b5966a2a252ee0f241a1e03b13417178eb4964f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c61742d737175617265" alt="MIT license" data-canonical-src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" style="max-width:100%;"></a>
</div>
<div class="text"><span class="bold">Version 4 maintenance</span>: We are still maintaining version 4 and providing especially fixes to security issues and other important fixes. New functionality is only added to the new version 5, so please consider upgrading to version 5 soon. <span class="bold">Version 5 is NOT fully backward compatible to version 4!</span> Be aware, there are some breaking changes. Please refer to the <a href="../changes.html">Version 5 - Changes</a> page to see a full documentation of all changes you should have a look on.</div>
<div class="text larger"><span class="bold">Version 5 documentation</span> can be found <a href="../index.html">here</a>.</div>
</div>
<div class="text"><span class="bold">Version 4 maintenance</span>: We are still maintaining version 4 and providing especially fixes to security issues and other important fixes. New functionality is only added to the new version 5, so please consider upgrading to version 5 soon. <span class="bold">Version 5 is NOT fully backward compatible to version 4!</span> Be aware, there are some breaking changes. Please refer to the <a href="../changes.html">Version 5 - Changes</a> page to see a full documentation of all changes you should have a look on.</div>
<div class="text larger"><span class="bold">Version 5 documentation</span> can be found <a href="../index.html">here</a>.</div>
</div>
</div>
<div class="row justify-content-center sectionheader index">
<div class="col-8">
<hr>
<div class="row justify-content-center sectionheader index">
<div class="col-8">
<hr>
</div>
</div>
</div>
<div class="row number-section">
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
<div class="numbers">10,943</div>
<div class="title">Lines of code</div>
<div class="row number-section">
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
<div class="numbers">10,943</div>
<div class="title">Lines of code</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
<div id="downloads" class="numbers">...</div>
<div class="title">Downloads last month</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
<div class="numbers">375</div>
<div class="title">Dependents</div>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
<div id="downloads" class="numbers">...</div>
<div class="title">Downloads last month</div>
<div class="row justify-content-center sectionheader index">
<div class="col-8">
<hr>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
<div class="numbers">375</div>
<div class="title">Dependents</div>
<div class="row" id="docs">
<div class="col-12 sectionheader index">
<div class="title">Documentation</div>
<div class="subtitle">Detailed documentation and reference for Version 4.x.x</div>
</div>
</div>
</div>
<div class="row justify-content-center sectionheader index">
<div class="col-8">
<hr>
<div class="row index">
<a href="gettingstarted.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-download"></i></div>
<div class="icontitle">Getting Started</div>
</div>
</a>
<a href="general.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-th-list"></i></div>
<div class="icontitle">General</div>
</div>
</a>
<a href="system.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-server"></i></div>
<div class="icontitle">System</div>
</div>
</a>
<a href="cpu.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-microchip"></i></div>
<div class="icontitle">CPU</div>
</div>
</a>
<a href="memory.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-memory"></i></div>
<div class="icontitle">Memory</div>
</div>
</a>
<a href="battery.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-battery-half"></i></div>
<div class="icontitle">Battery</div>
</div>
</a>
<a href="graphics.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-desktop"></i></div>
<div class="icontitle">Graphics</div>
</div>
</a>
<a href="os.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-window"></i></div>
<div class="icontitle">OS</div>
</div>
</a>
<a href="processes.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-chart-line"></i></div>
<div class="icontitle">Process/Service</div>
</div>
</a>
<a href="filesystem.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-hdd"></i></div>
<div class="icontitle">Disks / FS</div>
</div>
</a>
<a href="network.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-network-wired"></i></div>
<div class="icontitle">Network</div>
</div>
</a>
<a href="wifi.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-wifi"></i></div>
<div class="icontitle">Wifi</div>
</div>
</a>
<a href="docker.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fab fa-docker"></i></div>
<div class="icontitle">Docker</div>
</div>
</a>
<a href="vbox.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-box-open"></i></div>
<div class="icontitle">Virtual Box</div>
</div>
</a>
</div>
</div>
<div class="row" id="docs">
<div class="col-12 sectionheader index">
<div class="title">Documentation</div>
<div class="subtitle">Detailed documentation and reference for Version 4.x.x</div>
<div class="row justify-content-center sectionheader index">
<div class="col-8">
<hr>
</div>
</div>
</div>
<div class="row index">
<a href="gettingstarted.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-download"></i></div>
<div class="icontitle">Getting Started</div>
<div class="row">
<div class="col-12 sectionheader index">
<div class="title-small">Issues</div>
<div class="text"><span class="warning">Security issues</span>: Please have a look at our <a href="security.html">security advisories</a></div>
<div class="text">If you run into problems, please check out <a href="issues.html">known issues page</a> first. If you still have problems, please feel free to open an issue on our <a href="https://github.com/sebhildebrandt/systeminformation/issues">github page</a></div>
</div>
</a>
<a href="general.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-th-list"></i></div>
<div class="icontitle">General</div>
</div>
</a>
<a href="system.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-server"></i></div>
<div class="icontitle">System</div>
</div>
</a>
<a href="cpu.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-microchip"></i></div>
<div class="icontitle">CPU</div>
</div>
</a>
<a href="memory.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-memory"></i></div>
<div class="icontitle">Memory</div>
</div>
</a>
<a href="battery.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-battery-half"></i></div>
<div class="icontitle">Battery</div>
</div>
</a>
<a href="graphics.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-desktop"></i></div>
<div class="icontitle">Graphics</div>
</div>
</a>
<a href="os.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-window"></i></div>
<div class="icontitle">OS</div>
</div>
</a>
<a href="processes.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-chart-line"></i></div>
<div class="icontitle">Process/Service</div>
</div>
</a>
<a href="filesystem.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-hdd"></i></div>
<div class="icontitle">Disks / FS</div>
</div>
</a>
<a href="network.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-network-wired"></i></div>
<div class="icontitle">Network</div>
</div>
</a>
<a href="wifi.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-wifi"></i></div>
<div class="icontitle">Wifi</div>
</div>
</a>
<a href="docker.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fab fa-docker"></i></div>
<div class="icontitle">Docker</div>
</div>
</a>
<a href="vbox.html" class="col-xl-3 col-lg-3 col-md-4 col-6 features">
<div class="inner">
<div class="icons"><i class="fal fa-box-open"></i></div>
<div class="icontitle">Virtual Box</div>
</div>
</a>
</div>
<div class="row justify-content-center sectionheader index">
<div class="col-8">
<hr>
</div>
</div>
<div class="row">
<div class="col-12 sectionheader index">
<div class="title-small">Issues</div>
<div class="text"><span class="warning">Security issues</span>: Please have a look at our <a href="security.html">security advisories</a></div>
<div class="text">If you run into problems, please check out <a href="issues.html">known issues page</a> first. If you still have problems, please feel free to open an issue on our <a href="https://github.com/sebhildebrandt/systeminformation/issues">github page</a></div>
</div>
</div>
</section>
<footer class="container-fluid">
</section>
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -369,4 +371,4 @@
</script>
</body>
</html>
</html>

View File

@ -33,64 +33,66 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Known Issues</div>
<div class="text">
<h4>macOS - Temperature</h4>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Known Issues</div>
<div class="text">
<h4>macOS - Temperature</h4>
<p>To be able to measure temperature on macOS I created a little additional package. Due to some difficulties in NPM with <span class="code">optionalDependencies</span>
I unfortunately was getting unexpected warnings on other platforms. So I decided to drop this optional dependency for macOS - so by default,
you will not get correct values.</p>
<p>To be able to measure temperature on macOS I created a little additional package. Due to some difficulties in NPM with <span class="code">optionalDependencies</span>
I unfortunately was getting unexpected warnings on other platforms. So I decided to drop this optional dependency for macOS - so by default,
you will not get correct values.</p>
<p>But if you need to detect macOS temperature just run the following additional installation command:</p>
<p>But if you need to detect macOS temperature just run the following additional installation command:</p>
<pre>$ npm install osx-temperature-sensor --save</pre>
<p>systeminformation will then detect this additional library and return the temperature when calling systeminformations standard function <span class="code">cpuTemperature()</span></p>
<pre>$ npm install osx-temperature-sensor --save</pre>
<p>systeminformation will then detect this additional library and return the temperature when calling systeminformations standard function <span class="code">cpuTemperature()</span></p>
<h4>Windows Temperature, Battery, ...</h4>
<h4>Windows Temperature, Battery, ...</h4>
<p><span class="code">wmic</span> - which is used to determine temperature and battery sometimes needs to be run with admin
privileges. So if you do not get any values, try to run it again with according privileges. If you still do not get any
values, your system might not support this feature. In some cases we also discovered that wmic returned incorrect temperature values.</p>
<p><span class="code">wmic</span> - which is used to determine temperature and battery sometimes needs to be run with admin
privileges. So if you do not get any values, try to run it again with according privileges. If you still do not get any
values, your system might not support this feature. In some cases we also discovered that wmic returned incorrect temperature values.</p>
<h4>Linux Temperature</h4>
<h4>Linux Temperature</h4>
<p>In some cases you need to install the linux <span class="code">sensors</span> package to be able to measure temperature e.g. on DEBIAN based systems by running</p>
<pre>$ sudo apt-get install lm-sensors</pre>
<p>In some cases you need to install the linux <span class="code">sensors</span> package to be able to measure temperature e.g. on DEBIAN based systems by running</p>
<pre>$ sudo apt-get install lm-sensors</pre>
<h4>Windows, macOS - CPU Speed</h4>
<h4>Windows, macOS - CPU Speed</h4>
<p><span class="code">node.js</span> and <span class="code">wmic</span> are not able to determine correct CPU current speed on windows and macOS.
This means, you will have constant values here on both platforms for all processor cores in <span class="code">cpuCurrentSpeed()</span>.</p>
<p><span class="code">node.js</span> and <span class="code">wmic</span> are not able to determine correct CPU current speed on windows and macOS.
This means, you will have constant values here on both platforms for all processor cores in <span class="code">cpuCurrentSpeed()</span>.</p>
<h4>Linux S.M.A.R.T. Status</h4>
<h4>Linux S.M.A.R.T. Status</h4>
<p>To be able to detect S.M.A.R.T. status on Linux you need to install <span class="code">smartmontools</span>. On DEBIAN based linux distributions you can install it by running:</p>
<pre>$ sudo apt-get install smartmontools</pre>
<p>If you have smartmontools version >= 7.0 then you will get also full smart data in diskLayout()</p>
<p>To be able to detect S.M.A.R.T. status on Linux you need to install <span class="code">smartmontools</span>. On DEBIAN based linux distributions you can install it by running:</p>
<pre>$ sudo apt-get install smartmontools</pre>
<p>If you have smartmontools version >= 7.0 then you will get also full smart data in diskLayout()</p>
<h4>Stats Functions</h4>
<p>To get correct values with <span class="code">fsStats()</span>, <span class="code">disksIO()</span> and <span class="code">networkStats()</span> please check <a href="statsfunctions.html">this guide</a></p>
<h4>Stats Functions</h4>
<p>To get correct values with <span class="code">fsStats()</span>, <span class="code">disksIO()</span> and <span class="code">networkStats()</span> please check <a href="statsfunctions.html">this guide</a></p>
<h4>Empty / incorrect values</h4>
<p>If you discover empty or incorrect values, please keep in mind that some underlying commands need to be run under admin privileges. So if you run your scripts as normal users, not all system information values can be determined. For linux this is e.g. the case for `memLayout()`, advances `system()`, `bios()`, `baseboard()`, `cpu()`information, S.M.A.R.T. status and others... </p>
<h4>Empty / incorrect values</h4>
<p>If you discover empty or incorrect values, please keep in mind that some underlying commands need to be run under admin privileges. So if you run your scripts as normal users, not all system information values can be determined. For linux this is e.g. the case for `memLayout()`, advances `system()`, `bios()`, `baseboard()`, `cpu()`information, S.M.A.R.T. status and others... </p>
<h4>Finding New Issues</h4>
<p>If you still have problems, please feel free to open an issue on our <a href="https://github.com/sebhildebrandt/systeminformation/issues">github page</a></p>
<h4>Finding New Issues</h4>
<p>If you still have problems, please feel free to open an issue on our <a href="https://github.com/sebhildebrandt/systeminformation/issues">github page</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -132,4 +134,4 @@
</script>
</body>
</html>
</html>

View File

@ -37,169 +37,170 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Memory</div>
<div class="text">
<p>In this section you will learn how to get overall memory information (usage by OS) and memory module layout:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>System Memory and Memory Layout</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.mem(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Memory information (object)</td>
</tr>
<tr>
<td></td>
<td>total</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>total memory in bytes</td>
</tr>
<tr>
<td></td>
<td>free</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>not used in bytes</td>
</tr>
<tr>
<td></td>
<td>used</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>used (incl. buffers/cache)</td>
</tr>
<tr>
<td></td>
<td>active</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>used actively (excl. buffers/cache)</td>
</tr>
<tr>
<td></td>
<td>buffcache</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td>used by buffers+cache</td>
</tr>
<tr>
<td></td>
<td>buffers</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>used by buffers</td>
</tr>
<tr>
<td></td>
<td>cached</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>used by cache</td>
</tr>
<tr>
<td></td>
<td>slab</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>used by slab</td>
</tr>
<tr>
<td></td>
<td>available</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>potentially available (total - active)</td>
</tr>
<tr>
<td></td>
<td>swaptotal</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr>
<td></td>
<td>swapused</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr>
<td></td>
<td>swapfree</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Memory</div>
<div class="text">
<p>In this section you will learn how to get overall memory information (usage by OS) and memory module layout:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>System Memory and Memory Layout</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.mem(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Memory information (object)</td>
</tr>
<tr>
<td></td>
<td>total</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>total memory in bytes</td>
</tr>
<tr>
<td></td>
<td>free</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>not used in bytes</td>
</tr>
<tr>
<td></td>
<td>used</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>used (incl. buffers/cache)</td>
</tr>
<tr>
<td></td>
<td>active</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>used actively (excl. buffers/cache)</td>
</tr>
<tr>
<td></td>
<td>buffcache</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td>used by buffers+cache</td>
</tr>
<tr>
<td></td>
<td>buffers</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>used by buffers</td>
</tr>
<tr>
<td></td>
<td>cached</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>used by cache</td>
</tr>
<tr>
<td></td>
<td>slab</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>used by slab</td>
</tr>
<tr>
<td></td>
<td>available</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>potentially available (total - active)</td>
</tr>
<tr>
<td></td>
<td>swaptotal</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr>
<td></td>
<td>swapused</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr>
<td></td>
<td>swapfree</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.mem().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
@ -217,132 +218,132 @@ si.mem().then(data => console.log(data));</code></pre class="example">
swapfree: 8589930496
}
</pre>
</tr>
<tr>
<td>si.memLayout(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>Memory Layout (array of objects)</td>
</tr>
<tr>
<td></td>
<td>[0].size</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>size in bytes</td>
</tr>
<tr>
<td></td>
<td>[0].bank</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>memory bank</td>
</tr>
<tr>
<td></td>
<td>[0].type</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>memory type</td>
</tr>
<tr>
<td></td>
<td>[0].clockSpeed</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>clock speed</td>
</tr>
<tr>
<td></td>
<td>[0].formFactor</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>form factor</td>
</tr>
<tr>
<td></td>
<td>[0].manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>manufacturer</td>
</tr>
<tr>
<td></td>
<td>[0].partNum</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>part number</td>
</tr>
<tr>
<td></td>
<td>[0].serialNum</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>serial number</td>
</tr>
<tr>
<td></td>
<td>[0].voltageConfigured</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>voltage conf.</td>
</tr>
<tr>
<td></td>
<td>[0].voltageMin</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>voltage min</td>
</tr>
<tr>
<td></td>
<td>[0].voltageMax</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>voltage max</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tr>
<tr>
<td>si.memLayout(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>Memory Layout (array of objects)</td>
</tr>
<tr>
<td></td>
<td>[0].size</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>size in bytes</td>
</tr>
<tr>
<td></td>
<td>[0].bank</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>memory bank</td>
</tr>
<tr>
<td></td>
<td>[0].type</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>memory type</td>
</tr>
<tr>
<td></td>
<td>[0].clockSpeed</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>clock speed</td>
</tr>
<tr>
<td></td>
<td>[0].formFactor</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>form factor</td>
</tr>
<tr>
<td></td>
<td>[0].manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>manufacturer</td>
</tr>
<tr>
<td></td>
<td>[0].partNum</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>part number</td>
</tr>
<tr>
<td></td>
<td>[0].serialNum</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>serial number</td>
</tr>
<tr>
<td></td>
<td>[0].voltageConfigured</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>voltage conf.</td>
</tr>
<tr>
<td></td>
<td>[0].voltageMin</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>voltage min</td>
</tr>
<tr>
<td></td>
<td>[0].voltageMax</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>voltage max</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.memLayout().then(data => console.log(data));</code></pre class="example">
<pre class="example">
[
@ -374,17 +375,18 @@ si.memLayout().then(data => console.log(data));</code></pre class="example">
}
]
</pre>
</tr>
</tbody>
</table>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -426,4 +428,4 @@ si.memLayout().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -33,180 +33,182 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Security Advisories</div>
<div class="text">
<h2>Passing User Paramters to Systeminformation</h2>
<p>For most of the applications that are using <span class="code">systeminformation</span>, there is no reason to worry. <span class="bold">But be aware!</span> If you are using <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span>, <span class="code">versions()</span> with arbitrary untrusted user input, you should pay extra attention! We are doing a lot of input sanitation for those functions inside this package but we cannot handle all cases!</p>
<p class="warning">This can lead to serious impact on your servers!</p>
<p>We highly recommend to always upgrade to the latest version of our package. We maintain security updates for version 5 AND also version 4. For version 4 you can install latest version by placing <span class="code">"systeminformation": "^4"</span> in your package.json (dependencies) and run <span class="code">npm install</span></p>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Security Advisories</div>
<div class="text">
<h2>Passing User Paramters to Systeminformation</h2>
<p>For most of the applications that are using <span class="code">systeminformation</span>, there is no reason to worry. <span class="bold">But be aware!</span> If you are using <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span>, <span class="code">versions()</span> with arbitrary untrusted user input, you should pay extra attention! We are doing a lot of input sanitation for those functions inside this package but we cannot handle all cases!</p>
<p class="warning">This can lead to serious impact on your servers!</p>
<p>We highly recommend to always upgrade to the latest version of our package. We maintain security updates for version 5 AND also version 4. For version 4 you can install latest version by placing <span class="code">"systeminformation": "^4"</span> in your package.json (dependencies) and run <span class="code">npm install</span></p>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 4.34.21<br>
<span class="bold">Date:</span> 2021-05-04<br>
<span class="bold">CVE indentifier</span> -
</p>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 4.34.21<br>
<span class="bold">Date:</span> 2021-05-04<br>
<span class="bold">CVE indentifier</span> -
</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by passing a non string values as a parameter to the <span class="code">dockerContainerInspect()</span>, <span class="code">dockerContainerProcesses()</span>.</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by passing a non string values as a parameter to the <span class="code">dockerContainerInspect()</span>, <span class="code">dockerContainerProcesses()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with parameter checking. Please upgrade to version >= 4.34.21 if you are using version 4.</p>
<h4>Patch</h4>
<p>Problem was fixed with parameter checking. Please upgrade to version >= 4.34.21 if you are using version 4.</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize parameter strings that are passed to <span class="code">dockerContainerInspect()</span>, <span class="code">dockerContainerProcesses()</span> (string only)</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 4.34.20<br>
<span class="bold">Date:</span> 2021-04-08<br>
<span class="bold">CVE indentifier</span> -
</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize parameter strings that are passed to <span class="code">dockerContainerInspect()</span>, <span class="code">dockerContainerProcesses()</span> (string only)</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 4.34.20<br>
<span class="bold">Date:</span> 2021-04-08<br>
<span class="bold">CVE indentifier</span> -
</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by passing a non string values as a parameter to the <span class="code">versions()</span>.</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by passing a non string values as a parameter to the <span class="code">versions()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with parameter checking. Please upgrade to version >= 4.34.20 if you are using version 4.</p>
<h4>Patch</h4>
<p>Problem was fixed with parameter checking. Please upgrade to version >= 4.34.20 if you are using version 4.</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize parameter strings that are passed to <span class="code">versions()</span> (string only)</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 4.34.17<br>
<span class="bold">Date:</span> 2021-03-15<br>
<span class="bold">CVE indentifier</span> -
</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize parameter strings that are passed to <span class="code">versions()</span> (string only)</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 4.34.17<br>
<span class="bold">Date:</span> 2021-03-15<br>
<span class="bold">CVE indentifier</span> -
</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by passing a manipulated string prototype as a parameter to the following functions. Affected commands: <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span>.</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by passing a manipulated string prototype as a parameter to the following functions. Affected commands: <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with additional parameter checking. Please upgrade to version >= 4.34.17 if you are using version 4.</p>
<h4>Patch</h4>
<p>Problem was fixed with additional parameter checking. Please upgrade to version >= 4.34.17 if you are using version 4.</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize parameter strings that are passed to <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span> (string only)</p>
<hr>
<br>
<h2>Insufficient File Scheme Validation</h2>
<p><span class="bold">Affected versions:</span>
4.34.12<br>
<span class="bold">Date:</span> 2021-02-15<br>
<span class="bold">CVE indentifier</span> -
</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize parameter strings that are passed to <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span> (string only)</p>
<hr>
<br>
<h2>Insufficient File Scheme Validation</h2>
<p><span class="bold">Affected versions:</span>
4.34.12<br>
<span class="bold">Date:</span> 2021-02-15<br>
<span class="bold">CVE indentifier</span> -
</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to run inetChecksite against local files due to improper file scheme validation. Affected commands: <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>.</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to run inetChecksite against local files due to improper file scheme validation. Affected commands: <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with additional parameter checking. Please upgrade to version >= 4.34.12 if you are using version 4.</p>
<h4>Patch</h4>
<p>Problem was fixed with additional parameter checking. Please upgrade to version >= 4.34.12 if you are using version 4.</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span> (sanitize `file://` parameter)</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 4.34.11<br>
<span class="bold">Date:</span> 2021-02-14<br>
<span class="bold">CVE indentifier</span> CVE-2021-21315
</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span> (sanitize `file://` parameter)</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 4.34.11<br>
<span class="bold">Date:</span> 2021-02-14<br>
<span class="bold">CVE indentifier</span> CVE-2021-21315
</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by passing a manipulated array as a parameter to the following functions. Affected commands: <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span>.</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by passing a manipulated array as a parameter to the following functions. Affected commands: <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with additional parameter checking. Please upgrade to version >= 4.34.11 if you are using version 4.</p>
<h4>Patch</h4>
<p>Problem was fixed with additional parameter checking. Please upgrade to version >= 4.34.11 if you are using version 4.</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span> (string only)</p>
<hr>
<br>
<h2>DOS Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 4.34.10<br>
<span class="bold">Date:</span> 2021-02-12<br>
<span class="bold">CVE indentifier</span> -
</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetLatency()</span>, <span class="code">inetChecksite()</span>, <span class="code">services()</span>, <span class="code">processLoad()</span> (string only)</p>
<hr>
<br>
<h2>DOS Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 4.34.10<br>
<span class="bold">Date:</span> 2021-02-12<br>
<span class="bold">CVE indentifier</span> -
</p>
<h4>Impact</h4>
<p>Here we had an issue that there was a possibility to perform a ping command execution for too long time. Affected commands: <span class="code">inetLatency()</span>.</p>
<h4>Impact</h4>
<p>Here we had an issue that there was a possibility to perform a ping command execution for too long time. Affected commands: <span class="code">inetLatency()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with a shell string sanitation fix. Please upgrade to version >= 4.34.10 if you are using version 4.</p>
<h4>Patch</h4>
<p>Problem was fixed with a shell string sanitation fix. Please upgrade to version >= 4.34.10 if you are using version 4.</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetLatency()</span> (no spaces)</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
< 4.31.1<br>
<span class="bold">Date:</span> 2020-12-11<br>
<span class="bold">CVE indentifier</span> CVE-2020-26274, CVE-2020-28448
</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetLatency()</span> (no spaces)</p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
< 4.31.1<br>
<span class="bold">Date:</span> 2020-12-11<br>
<span class="bold">CVE indentifier</span> CVE-2020-26274, CVE-2020-28448
</p>
<h4>Impact</h4>
<p>Here we had an issue that there was a possibility to inject commands to the command line of your machine via systeminformation. Affected commands: <span class="code">inetLatency()</span>.</p>
<h4>Impact</h4>
<p>Here we had an issue that there was a possibility to inject commands to the command line of your machine via systeminformation. Affected commands: <span class="code">inetLatency()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with a shell string sanitation fix. Please upgrade to version >= 4.31.1</p>
<h4>Patch</h4>
<p>Problem was fixed with a shell string sanitation fix. Please upgrade to version >= 4.31.1</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetLatency()</span></p>
<hr>
<br>
<h2>Command Injection Vulnerability - prototype pollution</h2>
<p><span class="bold">Affected versions:</span>
< 4.30.5<br>
<span class="bold">Date:</span> 2020-11-26<br>
<span class="bold">CVE indentifier</span> CVE-2020-26245
</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetLatency()</span></p>
<hr>
<br>
<h2>Command Injection Vulnerability - prototype pollution</h2>
<p><span class="bold">Affected versions:</span>
< 4.30.5<br>
<span class="bold">Date:</span> 2020-11-26<br>
<span class="bold">CVE indentifier</span> CVE-2020-26245
</p>
<h4>Impact</h4>
<p>Here we had an issue that there was a possibility to inject commands to the command line by property pollution on the string object. Affected commands: <span class="code">inetChecksite()</span>.</p>
<h4>Impact</h4>
<p>Here we had an issue that there was a possibility to inject commands to the command line by property pollution on the string object. Affected commands: <span class="code">inetChecksite()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with a shell string sanitation fix as well as handling prototype polution. Please upgrade to version >= 4.30.5</p>
<h4>Patch</h4>
<p>Problem was fixed with a shell string sanitation fix as well as handling prototype polution. Please upgrade to version >= 4.30.5</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetChecksite()</span></p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
< 4.27.11<br>
<span class="bold">Date:</span> 2020-10-26<br>
<span class="bold">CVE indentifier</span> CVE-2020-7752
</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetChecksite()</span></p>
<hr>
<br>
<h2>Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
< 4.27.11<br>
<span class="bold">Date:</span> 2020-10-26<br>
<span class="bold">CVE indentifier</span> CVE-2020-7752
</p>
<h4>Impact</h4>
<p>Here we had an issue that there was a possibility to inject commands to the command line of your machine via systeminformation. Affected commands: <span class="code">inetChecksite()</span>.</p>
<h4>Impact</h4>
<p>Here we had an issue that there was a possibility to inject commands to the command line of your machine via systeminformation. Affected commands: <span class="code">inetChecksite()</span>.</p>
<h4>Patch</h4>
<p>Problem was fixed with a shell string sanitation fix. Please upgrade to version >= 4.27.11</p>
<h4>Patch</h4>
<p>Problem was fixed with a shell string sanitation fix. Please upgrade to version >= 4.27.11</p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetChecksite()</span></p>
<h4>Workarround</h4>
<p>If you cannot upgrade, be sure to check or sanitize service parameter strings that are passed to <span class="code">inetChecksite()</span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">

View File

@ -37,65 +37,66 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Stats Functions</div>
<div class="text">
<h2>Getting correct stats values</h2>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Stats Functions</div>
<div class="text">
<h2>Getting correct stats values</h2>
<p>In <span class="code">fsStats()</span>, <span class="code">disksIO()</span>, <span class="code">currentLoad()</span> and <span class="code">networkStats()</span> the
results / sec. values (rx_sec, IOPS, ...) are calculated correctly beginning with the <strong>second</strong> call of the function.
It is determined by calculating the difference of transferred bytes / IOs divided by the time between two calls of the function.</p>
<p>In <span class="code">fsStats()</span>, <span class="code">disksIO()</span>, <span class="code">currentLoad()</span> and <span class="code">networkStats()</span> the
results / sec. values (rx_sec, IOPS, ...) are calculated correctly beginning with the <strong>second</strong> call of the function.
It is determined by calculating the difference of transferred bytes / IOs divided by the time between two calls of the function.</p>
<p>The first time you are calling one of this functions, you will get <span class="code">-1</span> for transfer rates.
The second time, you should then get statistics based on the time between the two calls ...</p>
<p>The first time you are calling one of this functions, you will get <span class="code">-1</span> for transfer rates.
The second time, you should then get statistics based on the time between the two calls ...</p>
<p>So basically, if you e.g. need a values for network stats every second, your code should look like this:</p>
<p>So basically, if you e.g. need a values for network stats every second, your code should look like this:</p>
<pre><code class="js">const si = require('systeminformation');
<pre><code class="js">const si = require('systeminformation');
setInterval(function() {
si.networkStats().then(data => {
console.log(data);
})
}, 1000)</code></pre>
<p>Beginning with the second call, you get network transfer values per second.</p>
<h2>Observe System Parameters</h2>
<p>systeminformation now allows you to easily observe system parameters: First you define a result object of system parameters you want to observe (see also decription of the <a href="general.html"><span class="code">si.get()</span> function here</a>):</p>
<p>Then you just call an <span class="code">si.observe()</span> function with three parameters: your result object, the polling interval (in milliseconds) and a callback function. systeminformation will now observe the result object. Every time the result changes, your callback function is called. This callback function also gets the current value the observed system parameters object.</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<p>Beginning with the second call, you get network transfer values per second.</p>
<h2>Observe System Parameters</h2>
<p>systeminformation now allows you to easily observe system parameters: First you define a result object of system parameters you want to observe (see also decription of the <a href="general.html"><span class="code">si.get()</span> function here</a>):</p>
<p>Then you just call an <span class="code">si.observe()</span> function with three parameters: your result object, the polling interval (in milliseconds) and a callback function. systeminformation will now observe the result object. Every time the result changes, your callback function is called. This callback function also gets the current value the observed system parameters object.</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
<td>si.observe(valueObject,interval,cb)</td>
<td>-</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Observe the defined value object,<br>call callback on changes:</td>
</tr>
</thead>
<tr>
<td>si.observe(valueObject,interval,cb)</td>
<td>-</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Observe the defined value object,<br>call callback on changes:</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
// define all values, you want to get back
valueObject = {
@ -125,7 +126,8 @@ setTimeout(() => {
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -167,4 +169,4 @@ setTimeout(() => {
</script>
</body>
</html>
</html>

View File

@ -2,6 +2,7 @@ body {
font-family: -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, Helvetica, Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol";
font-weight: 300;
min-height: 100%;
background-color: #59351e;
}
h1, h2, h3, h4 {
@ -22,6 +23,11 @@ h1, h2, h3, h4 {
color: #9c0101;
}
.container-fluid {
background-color: white;
padding-bottom: 30px;
}
.bg-image-full {
background: no-repeat center center scroll;
background-color: #4b2313;
@ -546,17 +552,16 @@ pre {
background-color: #f0f0f4;
}
footer {
.footer {
background-color: #eee;
margin-top: 30px;
padding-top: 30px;
padding-bottom: 30px;
position: relative;
}
footer a {
.footer a {
color: #000;
}
footer .badge {
.footer .badge {
color: #fff;
font-size: 0.9rem;
}

View File

@ -1 +1 @@
{"version":3,"sources":["styles.scss"],"names":[],"mappings":"AAAA;EACI,0JAAA;EACA,gBAAA;EACA,gBAAA;AACJ;;AACA;EACI,0JAAA;EACA,gBAAA;AAEJ;;AAAA;EACI,kBAAA;AAGJ;;AADA;EACI,gBAAA;AAIJ;;AAFA;EACI,gBAAA;EACA,cAAA;AAKJ;;AAHA;EACI,0CAAA;EACA,yBAAA;EAA2B,+CAAA;EAC3B,2DAAA;EAA8D,mCAAA;EAI9D,sBAAA;EACA,yBAAA;EACA,aAAA;EACA,kCAAA;EACA,aAAA;EACA,aAAA;EACA,uBAAA;EACA,kBAAA;EAGA,sBAAA;AAKJ;AAJI;EACE,kBAAA;EACA,kBAAA;EACA,aAAA;EACA,uBAAA;EACA,sBAAA;EACA,mBAAA;EACA,YAAA;AAMN;AAJI;EACE,kBAAA;EACA,SAAA;EACA,YAAA;EACA,WAAA;EACA,qBAAA;EACA,YAAA;EACA,kBAAA;EACA,iBAAA;EACA,YAAA;EACA,wBAAA;EACA,mBAAA;EACA,iBAAA;AAMN;AALM;EAbF;IAcM,eAAA;EAQR;AACF;AAPM;EAhBF;IAiBM,iBAAA;EAUR;AACF;AATM;EAnBF;IAoBI,SAAA;IACA,YAAA;IACA,iBAAA;EAYN;AACF;AAXM;EACE,qBAAA;AAaR;AAVI;EACI,WAAA;EACA,iBAAA;EACA,iBAAA;EACA,mBAAA;AAYR;AAXQ;EALJ;IAMQ,iBAAA;EAcV;AACF;AAbQ;EARJ;IASQ,iBAAA;EAgBV;AACF;AAfQ;EAXJ;IAYQ,eAAA;EAkBV;AACF;AAhBI;EACI,YAAA;AAkBR;AAjBQ;EAFJ;IAGQ,YAAA;EAoBV;AACF;AAnBQ;EALJ;IAMQ,YAAA;EAsBV;AACF;AArBQ;EARJ;IASQ,YAAA;EAwBV;AACF;AAtBI;EACI,kBAAA;EACA,WAAA;EACA,kBAAA;AAwBR;AAvBQ;EAJJ;IAKQ,iBAAA;EA0BV;AACF;AAzBQ;EAPJ;IAQQ,eAAA;EA4BV;AACF;AA3BQ;EAVJ;IAWQ,iBAAA;EA8BV;AACF;AA7BQ;EAbJ;IAcQ,iBAAA;EAgCV;AACF;AA9BI;EACI,kBAAA;EACA,WAAA;EACA,iBAAA;AAgCR;AA/BQ;EACI,WAAA;EACA,qBAAA;AAiCZ;AA/BQ;EARJ;IASQ,iBAAA;EAkCV;AACF;AAjCQ;EAXJ;IAYQ,eAAA;EAoCV;AACF;AAnCQ;EAdJ;IAeQ,eAAA;EAsCV;AACF;AArCQ;EAjBJ;IAkBQ,iBAAA;EAwCV;AACF;AAtCI;EACI,kBAAA;EACA,mBAAA;EACA,WAAA;EACA,iBAAA;AAwCR;AAvCQ;EALJ;IAMQ,iBAAA;EA0CV;AACF;AAzCQ;EARJ;IASQ,eAAA;EA4CV;AACF;AA3CQ;EAXJ;IAYQ,iBAAA;EA8CV;AACF;AA5CI;EACE,kBAAA;EACA,WAAA;EACA,iBAAA;EACA,cAAA;EACA,mBAAA;EACA,eAAA;AA8CN;AA7CM;EACE,eAAA;AA+CR;;AAnCA;EACI,0CAAA;EAGA,yBAAA;EAA2B,+CAAA;EAC3B,2DAAA;EAA8D,mCAAA;EAG9D,sBAAA;EACA,yBAAA;EACA,YAAA;EACA,kBAAA;AAsCJ;AArCI;EACI,WAAA;EACA,gBAAA;AAuCR;AArCI;EACI,aAAA;EACA,WAAA;EACA,iBAAA;EACA,iBAAA;EACA,gBAAA;AAuCR;AAtCQ;EANJ;IAOQ,qBAAA;EAyCV;AACF;AAxCQ;EATJ;IAUQ,iBAAA;EA2CV;AACF;AAzCI;EACI,gBAAA;AA2CR;AAzCQ;EACI,WAAA;EACA,gBAAA;EACA,eAAA;AA2CZ;AA1CY;EAJJ;IAKQ,gBAAA;IACA,iBAAA;EA6Cd;AACF;AA5CY;EACI,WAAA;EACA,qBAAA;AA8ChB;AA1CI;EACE,aAAA;AA4CN;AA3CM;EAFF;IAGI,qBAAA;EA8CN;AACF;AA5CI;EACE,qBAAA;AA8CN;AA7CM;EAFF;IAGI,aAAA;EAgDN;AACF;;AA7CA;EACI,kBAAA;EACA,WAAA;AAgDJ;AA/CI;EACE,iBAAA;AAiDN;AAhDM;EAFF;IAGI,kBAAA;EAmDN;AACF;AAlDM;EACI,cAAA;EACA,eAAA;EACA,WAAA;AAoDV;AAnDU;EAJJ;IAKQ,iBAAA;EAsDZ;AACF;AArDU;EAPJ;IAQQ,eAAA;EAwDZ;AACF;AAvDU;EAVJ;IAWQ,eAAA;EA0DZ;AACF;AAxDM;EACI,iBAAA;AA0DV;AAvDM;EACI,mBAAA;EACA,cAAA;AAyDV;AAxDU;EACE,cAAA;AA0DZ;;AApDI;EACI,kBAAA;EACA,iBAAA;EACA,eAAA;AAuDR;AAtDQ;EAJJ;IAKQ,iBAAA;EAyDV;AACF;AAxDQ;EAPJ;IAQQ,gBAAA;IACA,iBAAA;IACA,iBAAA;EA2DV;AACF;AA1DQ;EAZJ;IAaQ,iBAAA;IACA,eAAA;EA6DV;AACF;AA3DI;EACI,kBAAA;EACA,iBAAA;AA6DR;AA5DQ;EAHJ;IAIQ,iBAAA;EA+DV;AACF;AA9DQ;EANJ;IAOQ,gBAAA;IACA,iBAAA;IACA,iBAAA;EAiEV;AACF;AAhEQ;EAXJ;IAYQ,iBAAA;IACA,eAAA;EAmEV;AACF;AAjEI;EACI,kBAAA;EACA,iBAAA;AAmER;AAlEQ;EAHJ;IAIQ,eAAA;EAqEV;AACF;AApEQ;EANJ;IAOQ,gBAAA;IACA,iBAAA;EAuEV;AACF;AAtEQ;EAVJ;IAWQ,iBAAA;EAyEV;AACF;AAvEI;EACI,kBAAA;AAyER;AAvEI;EACI,kBAAA;EACA,iBAAA;AAyER;AAxEQ;EAHJ;IAIQ,gBAAA;EA2EV;AACF;AAzEI;EACI,gBAAA;EACA,kBAAA;EACA,sBAAA;AA2ER;;AAxEA;EACE,kBAAA;AA2EF;AA1EE;EACI,kBAAA;AA4EN;AA1EE;EACI,qBAAA;AA4EN;AA3EM;EACI,qBAAA;EACA,cAAA;AA6EV;;AAxEI;EACI,gBAAA;AA2ER;;AAxEA;EACI,gBAAA;AA2EJ;;AAzEA;EACI,gBAAA;AA4EJ;;AA1EA;EACI,gBAAA;EACA,kBAAA;AA6EJ;AA5EI;EACI,eAAA;AA8ER;AA7EQ;EAFJ;IAGQ,iBAAA;EAgFV;AACF;AA/EQ;EALJ;IAMQ,iBAAA;EAkFV;AACF;AAhFI;EACI,WAAA;EACA,eAAA;AAkFR;AAjFQ;EAHJ;IAIQ,iBAAA;EAoFV;AACF;AAnFQ;EANJ;IAOQ,iBAAA;EAsFV;AACF;;AAnFA;EACI,aAAA;AAsFJ;AArFI;EAFJ;IAGQ,gBAAA;IACA,qBAAA;EAwFN;AACF;AAvFI;EACI,oBAAA;EACA,WAAA;AAyFR;AAxFQ;EACE,WAAA;EACA,WAAA;EACA,qBAAA;AA0FV;AAzFU;EACI,cAAA;AA2Fd;AAvFI;EACI,aAAA;AAyFR;AAvFI;EACI,qBAAA;EACA,SAAA;EACA,UAAA;AAyFR;AAxFQ;EACI,cAAA;AA0FZ;AAzFY;EACI,WAAA;EACA,WAAA;EACA,qBAAA;AA2FhB;AA1FgB;EACI,cAAA;AA4FpB;AAzFY;EACI,cAAA;AA2FhB;;AAtFA;EACI,mEAAA;EACA,mCAAA;EACA,eAAA;EACA,kBAAA;EACA,oBAAA;EACA,gBAAA;EACA,qBAAA;EACA,sBAAA;EACA,SAAA;EACA,cAAA;AAyFJ;;AAvFA;EACI,0BAAA;EACA,mEAAA;EACA,mCAAA;EACA,eAAA;EACA,kBAAA;EACA,oBAAA;EACA,gBAAA;EACA,iBAAA;EACA,sBAAA;EACA,WAAA;EACA,gBAAA;AA0FJ;;AAvFI;EACE,iCAAA;AA0FN;AAxFI;EACE,oCAAA;AA0FN;AAxFI;EACE,gBAAA;EACA,kBAAA;AA0FN;AAxFI;EACE,uBAAA;AA0FN;AAzFM;EACE,yBAAA;AA2FR;;AAtFA;EACI,sBAAA;EACA,gBAAA;EACA,iBAAA;EACA,oBAAA;EACA,kBAAA;AAyFJ;AAxFI;EACI,WAAA;AA0FR;AAxFI;EACE,WAAA;EACA,iBAAA;AA0FN;;AAvFA;EACE,gBAAA;EACA,4BAAA;AA0FF;;AAxFA;EACE,cAAA;AA2FF","file":"styles.css"}
{"version":3,"sources":["styles.scss"],"names":[],"mappings":"AAAA;EACI,0JAAA;EACA,gBAAA;EACA,gBAAA;EACA,yBAAA;AACJ;;AACA;EACI,0JAAA;EACA,gBAAA;AAEJ;;AAAA;EACI,kBAAA;AAGJ;;AADA;EACI,gBAAA;AAIJ;;AAFA;EACI,gBAAA;EACA,cAAA;AAKJ;;AAHA;EACE,uBAAA;EACA,oBAAA;AAMF;;AAJA;EACI,0CAAA;EACA,yBAAA;EAA2B,+CAAA;EAC3B,2DAAA;EAA8D,mCAAA;EAI9D,sBAAA;EACA,yBAAA;EACA,aAAA;EACA,kCAAA;EACA,aAAA;EACA,aAAA;EACA,uBAAA;EACA,kBAAA;EAGA,sBAAA;AAMJ;AALI;EACE,kBAAA;EACA,kBAAA;EACA,aAAA;EACA,uBAAA;EACA,sBAAA;EACA,mBAAA;EACA,YAAA;AAON;AALI;EACE,kBAAA;EACA,SAAA;EACA,YAAA;EACA,WAAA;EACA,qBAAA;EACA,YAAA;EACA,kBAAA;EACA,iBAAA;EACA,YAAA;EACA,wBAAA;EACA,mBAAA;EACA,iBAAA;AAON;AANM;EAbF;IAcM,eAAA;EASR;AACF;AARM;EAhBF;IAiBM,iBAAA;EAWR;AACF;AAVM;EAnBF;IAoBI,SAAA;IACA,YAAA;IACA,iBAAA;EAaN;AACF;AAZM;EACE,qBAAA;AAcR;AAXI;EACI,WAAA;EACA,iBAAA;EACA,iBAAA;EACA,mBAAA;AAaR;AAZQ;EALJ;IAMQ,iBAAA;EAeV;AACF;AAdQ;EARJ;IASQ,iBAAA;EAiBV;AACF;AAhBQ;EAXJ;IAYQ,eAAA;EAmBV;AACF;AAjBI;EACI,YAAA;AAmBR;AAlBQ;EAFJ;IAGQ,YAAA;EAqBV;AACF;AApBQ;EALJ;IAMQ,YAAA;EAuBV;AACF;AAtBQ;EARJ;IASQ,YAAA;EAyBV;AACF;AAvBI;EACI,kBAAA;EACA,WAAA;EACA,kBAAA;AAyBR;AAxBQ;EAJJ;IAKQ,iBAAA;EA2BV;AACF;AA1BQ;EAPJ;IAQQ,eAAA;EA6BV;AACF;AA5BQ;EAVJ;IAWQ,iBAAA;EA+BV;AACF;AA9BQ;EAbJ;IAcQ,iBAAA;EAiCV;AACF;AA/BI;EACI,kBAAA;EACA,WAAA;EACA,iBAAA;AAiCR;AAhCQ;EACI,WAAA;EACA,qBAAA;AAkCZ;AAhCQ;EARJ;IASQ,iBAAA;EAmCV;AACF;AAlCQ;EAXJ;IAYQ,eAAA;EAqCV;AACF;AApCQ;EAdJ;IAeQ,eAAA;EAuCV;AACF;AAtCQ;EAjBJ;IAkBQ,iBAAA;EAyCV;AACF;AAvCI;EACI,kBAAA;EACA,mBAAA;EACA,WAAA;EACA,iBAAA;AAyCR;AAxCQ;EALJ;IAMQ,iBAAA;EA2CV;AACF;AA1CQ;EARJ;IASQ,eAAA;EA6CV;AACF;AA5CQ;EAXJ;IAYQ,iBAAA;EA+CV;AACF;AA7CI;EACE,kBAAA;EACA,WAAA;EACA,iBAAA;EACA,cAAA;EACA,mBAAA;EACA,eAAA;AA+CN;AA9CM;EACE,eAAA;AAgDR;;AApCA;EACI,0CAAA;EAGA,yBAAA;EAA2B,+CAAA;EAC3B,2DAAA;EAA8D,mCAAA;EAG9D,sBAAA;EACA,yBAAA;EACA,YAAA;EACA,kBAAA;AAuCJ;AAtCI;EACI,WAAA;EACA,gBAAA;AAwCR;AAtCI;EACI,aAAA;EACA,WAAA;EACA,iBAAA;EACA,iBAAA;EACA,gBAAA;AAwCR;AAvCQ;EANJ;IAOQ,qBAAA;EA0CV;AACF;AAzCQ;EATJ;IAUQ,iBAAA;EA4CV;AACF;AA1CI;EACI,gBAAA;AA4CR;AA1CQ;EACI,WAAA;EACA,gBAAA;EACA,eAAA;AA4CZ;AA3CY;EAJJ;IAKQ,gBAAA;IACA,iBAAA;EA8Cd;AACF;AA7CY;EACI,WAAA;EACA,qBAAA;AA+ChB;AA3CI;EACE,aAAA;AA6CN;AA5CM;EAFF;IAGI,qBAAA;EA+CN;AACF;AA7CI;EACE,qBAAA;AA+CN;AA9CM;EAFF;IAGI,aAAA;EAiDN;AACF;;AA9CA;EACI,kBAAA;EACA,WAAA;AAiDJ;AAhDI;EACE,iBAAA;AAkDN;AAjDM;EAFF;IAGI,kBAAA;EAoDN;AACF;AAnDM;EACI,cAAA;EACA,eAAA;EACA,WAAA;AAqDV;AApDU;EAJJ;IAKQ,iBAAA;EAuDZ;AACF;AAtDU;EAPJ;IAQQ,eAAA;EAyDZ;AACF;AAxDU;EAVJ;IAWQ,eAAA;EA2DZ;AACF;AAzDM;EACI,iBAAA;AA2DV;AAxDM;EACI,mBAAA;EACA,cAAA;AA0DV;AAzDU;EACE,cAAA;AA2DZ;;AArDI;EACI,kBAAA;EACA,iBAAA;EACA,eAAA;AAwDR;AAvDQ;EAJJ;IAKQ,iBAAA;EA0DV;AACF;AAzDQ;EAPJ;IAQQ,gBAAA;IACA,iBAAA;IACA,iBAAA;EA4DV;AACF;AA3DQ;EAZJ;IAaQ,iBAAA;IACA,eAAA;EA8DV;AACF;AA5DI;EACI,kBAAA;EACA,iBAAA;AA8DR;AA7DQ;EAHJ;IAIQ,iBAAA;EAgEV;AACF;AA/DQ;EANJ;IAOQ,gBAAA;IACA,iBAAA;IACA,iBAAA;EAkEV;AACF;AAjEQ;EAXJ;IAYQ,iBAAA;IACA,eAAA;EAoEV;AACF;AAlEI;EACI,kBAAA;EACA,iBAAA;AAoER;AAnEQ;EAHJ;IAIQ,eAAA;EAsEV;AACF;AArEQ;EANJ;IAOQ,gBAAA;IACA,iBAAA;EAwEV;AACF;AAvEQ;EAVJ;IAWQ,iBAAA;EA0EV;AACF;AAxEI;EACI,kBAAA;AA0ER;AAxEI;EACI,kBAAA;EACA,iBAAA;AA0ER;AAzEQ;EAHJ;IAIQ,gBAAA;EA4EV;AACF;AA1EI;EACI,gBAAA;EACA,kBAAA;EACA,sBAAA;AA4ER;;AAzEA;EACE,kBAAA;AA4EF;AA3EE;EACI,kBAAA;AA6EN;AA3EE;EACI,qBAAA;AA6EN;AA5EM;EACI,qBAAA;EACA,cAAA;AA8EV;;AAzEI;EACI,gBAAA;AA4ER;;AAzEA;EACI,gBAAA;AA4EJ;;AA1EA;EACI,gBAAA;AA6EJ;;AA3EA;EACI,gBAAA;EACA,kBAAA;AA8EJ;AA7EI;EACI,eAAA;AA+ER;AA9EQ;EAFJ;IAGQ,iBAAA;EAiFV;AACF;AAhFQ;EALJ;IAMQ,iBAAA;EAmFV;AACF;AAjFI;EACI,WAAA;EACA,eAAA;AAmFR;AAlFQ;EAHJ;IAIQ,iBAAA;EAqFV;AACF;AApFQ;EANJ;IAOQ,iBAAA;EAuFV;AACF;;AApFA;EACI,aAAA;AAuFJ;AAtFI;EAFJ;IAGQ,gBAAA;IACA,qBAAA;EAyFN;AACF;AAxFI;EACI,oBAAA;EACA,WAAA;AA0FR;AAzFQ;EACE,WAAA;EACA,WAAA;EACA,qBAAA;AA2FV;AA1FU;EACI,cAAA;AA4Fd;AAxFI;EACI,aAAA;AA0FR;AAxFI;EACI,qBAAA;EACA,SAAA;EACA,UAAA;AA0FR;AAzFQ;EACI,cAAA;AA2FZ;AA1FY;EACI,WAAA;EACA,WAAA;EACA,qBAAA;AA4FhB;AA3FgB;EACI,cAAA;AA6FpB;AA1FY;EACI,cAAA;AA4FhB;;AAvFA;EACI,mEAAA;EACA,mCAAA;EACA,eAAA;EACA,kBAAA;EACA,oBAAA;EACA,gBAAA;EACA,qBAAA;EACA,sBAAA;EACA,SAAA;EACA,cAAA;AA0FJ;;AAxFA;EACI,0BAAA;EACA,mEAAA;EACA,mCAAA;EACA,eAAA;EACA,kBAAA;EACA,oBAAA;EACA,gBAAA;EACA,iBAAA;EACA,sBAAA;EACA,WAAA;EACA,gBAAA;AA2FJ;;AAxFI;EACE,iCAAA;AA2FN;AAzFI;EACE,oCAAA;AA2FN;AAzFI;EACE,gBAAA;EACA,kBAAA;AA2FN;AAzFI;EACE,uBAAA;AA2FN;AA1FM;EACE,yBAAA;AA4FR;;AAvFA;EACI,sBAAA;EACA,iBAAA;EACA,oBAAA;EACA,kBAAA;AA0FJ;AAzFI;EACI,WAAA;AA2FR;AAzFI;EACE,WAAA;EACA,iBAAA;AA2FN;;AAxFA;EACE,gBAAA;EACA,4BAAA;AA2FF;;AAzFA;EACE,cAAA;AA4FF","file":"styles.css"}

View File

@ -2,6 +2,7 @@ body {
font-family: -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, Helvetica, Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol";
font-weight: 300;
min-height: 100%;
background-color: rgb(89, 53, 30);
}
h1, h2, h3, h4 {
font-family: -apple-system, BlinkMacSystemFont, "segoe ui", Roboto, Helvetica, Arial, sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol";
@ -17,6 +18,10 @@ h1, h2, h3, h4 {
font-weight: 500;
color: rgb(156, 1, 1);
}
.container-fluid {
background-color: rgb(255,255,255);
padding-bottom: 30px;
}
.bg-image-full {
background: no-repeat center center scroll;
background-color: #4b2313; /* For browsers that do not support gradients */
@ -462,9 +467,8 @@ pre {
}
}
}
footer {
.footer {
background-color: #eee;
margin-top: 30px;
padding-top: 30px;
padding-bottom: 30px;
position: relative;

View File

@ -37,129 +37,130 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">System (Hardware)</div>
<div class="text">
<p>In this section you will learn how to get basic system hardware data. We will cover the system, baseboard and bios:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>System</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.system(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>hardware information</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'MSI' or 'DELL'</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>model/product e.g. 'MS-7823'</td>
</tr>
<tr>
<td></td>
<td>version</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>version e.g. '1.0'</td>
</tr>
<tr>
<td></td>
<td>serial</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>serial number</td>
</tr>
<tr>
<td></td>
<td>uuid</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>UUID</td>
</tr>
<tr>
<td></td>
<td>sku</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>SKU number</td>
</tr>
<tr>
<td></td>
<td>virtual</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>is virtual machine</td>
</tr>
<tr>
<td></td>
<td>raspberry</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>Additional Raspberry-specific information<br>manufacturer, processor, type, revision<br>Raspberry only</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">System (Hardware)</div>
<div class="text">
<p>In this section you will learn how to get basic system hardware data. We will cover the system, baseboard and bios:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>System</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.system(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>hardware information</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'MSI' or 'DELL'</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>model/product e.g. 'MS-7823'</td>
</tr>
<tr>
<td></td>
<td>version</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>version e.g. '1.0'</td>
</tr>
<tr>
<td></td>
<td>serial</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>serial number</td>
</tr>
<tr>
<td></td>
<td>uuid</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>UUID</td>
</tr>
<tr>
<td></td>
<td>sku</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>SKU number</td>
</tr>
<tr>
<td></td>
<td>virtual</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>is virtual machine</td>
</tr>
<tr>
<td></td>
<td>raspberry</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>Additional Raspberry-specific information<br>manufacturer, processor, type, revision<br>Raspberry only</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.system().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
@ -172,62 +173,62 @@ si.system().then(data => console.log(data));</code></pre class="example">
virtual: false,
}
</pre>
</tr>
<tr>
<td>si.bios(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>bios information</td>
</tr>
<tr>
<td></td>
<td>vendor</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'AMI'</td>
</tr>
<tr>
<td></td>
<td>version</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>version</td>
</tr>
<tr>
<td></td>
<td>releaseDate</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>release date</td>
</tr>
<tr>
<td></td>
<td>revision</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>revision</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tr>
<tr>
<td>si.bios(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>bios information</td>
</tr>
<tr>
<td></td>
<td>vendor</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'AMI'</td>
</tr>
<tr>
<td></td>
<td>version</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>version</td>
</tr>
<tr>
<td></td>
<td>releaseDate</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>release date</td>
</tr>
<tr>
<td></td>
<td>revision</td>
<td>X</td>
<td>X</td>
<td></td>
<td>X</td>
<td></td>
<td>revision</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.bios().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
@ -236,72 +237,72 @@ si.bios().then(data => console.log(data));</code></pre class="example">
releaseDate: '2019-09-05',
revision: '5.13'
}</pre>
</tr>
<tr>
<td>si.baseboard(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>baseboard information</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'ASUS'</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>model / product name</td>
</tr>
<tr>
<td></td>
<td>version</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>version</td>
</tr>
<tr>
<td></td>
<td>serial</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>serial number</td>
</tr>
<tr>
<td></td>
<td>assetTag</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>asset tag</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tr>
<tr>
<td>si.baseboard(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>baseboard information</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'ASUS'</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>model / product name</td>
</tr>
<tr>
<td></td>
<td>version</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>version</td>
</tr>
<tr>
<td></td>
<td>serial</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>serial number</td>
</tr>
<tr>
<td></td>
<td>assetTag</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>asset tag</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.baseboard().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
@ -311,92 +312,92 @@ si.baseboard().then(data => console.log(data));</code></pre class="example">
serial: 'C80-xxxxxxxxxxx',
assetTag: ''
}</pre>
</tr>
<tr>
<td>si.chassis(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>chassis information</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'ASUS'</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>model / product name</td>
</tr>
<tr>
<td></td>
<td>type</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>chassis type e.g. 'desktop'</td>
</tr>
<tr>
<td></td>
<td>version</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>version</td>
</tr>
<tr>
<td></td>
<td>serial</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>serial number</td>
</tr>
<tr>
<td></td>
<td>assetTag</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>asset tag</td>
</tr>
<tr>
<td></td>
<td>sku</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>SKU number</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tr>
<tr>
<td>si.chassis(cb)</td>
<td>{...}</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>chassis information</td>
</tr>
<tr>
<td></td>
<td>manufacturer</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>e.g. 'ASUS'</td>
</tr>
<tr>
<td></td>
<td>model</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>model / product name</td>
</tr>
<tr>
<td></td>
<td>type</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>chassis type e.g. 'desktop'</td>
</tr>
<tr>
<td></td>
<td>version</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>version</td>
</tr>
<tr>
<td></td>
<td>serial</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>serial number</td>
</tr>
<tr>
<td></td>
<td>assetTag</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
<td>asset tag</td>
</tr>
<tr>
<td></td>
<td>sku</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>SKU number</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.chassis().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
@ -408,17 +409,18 @@ si.chassis().then(data => console.log(data));</code></pre class="example">
assetTag: 'Mac-99878xxxx...',
sku: ''
}</pre>
</tr>
</tbody>
</table>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -460,4 +462,4 @@ si.chassis().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -33,50 +33,52 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader left">
<div class="title">Trademarks</div>
<div class="text">
<p>The following trademarks are the properties of their respective owners as listed below. Should any trademark attribution be missing, mistaken or erroneous, please contact us as soon as possible for rectification.</p>
<ul>
<li><strong>Node.js</strong> is a trademark of Joyent Inc.</li>
<li><strong>Linux</strong> is a registered trademark of Linus Torvalds</li>
<li><strong>Apple, macOS, OS X</strong> are registered trademarks of Apple Inc.</li>
<li><strong>Windows</strong> is a registered trademark of Microsoft Corporation</li>
<li><strong>Intel</strong> is a trademark of Intel Corporation</li>
<li><strong>AMD</strong> is a trademark of Advanced Micro Devices Inc.</li>
<li><strong>Ryzen</strong> is a trademark of Advanced Micro Devices Inc.</li>
<li><strong>Raspberry Pi</strong> is a trademark of the Raspberry Pi Foundation</li>
<li><strong>Debian</strong> is a trademark of the Debian Project</li>
<li><strong>FreeBSD</strong> is a registered trademark of The FreeBSD Foundation</li>
<li><strong>NetBSD</strong> is a registered trademark of The NetBSD Foundation</li>
<li><strong>Docker</strong> is a trademark of Docker, Inc.</li>
<li><strong>Ubuntu</strong> is a trademark of Canonical Ltd.</li>
<li><strong>CentOS</strong> is a trademark of Read Hat Inc.</li>
<li><strong>Sun, Solaris, OpenSolaris</strong> are registered trademarks of Sun Microsystems</li>
<li><strong>Virtual Box</strong> are registered trademarks of Oracle Corporation</li>
<li><strong>BSD</strong> is a registered trademark of UUnet Technologies, Inc.</li>
<li><strong>UNIX</strong> is a registered trademark of The Open Group.</li>
<li><strong>NVIDIA</strong> is a registered trademark of NVIDIA Corporation.</li>
<li><strong>MSI</strong> is a registered trademark Micro-Star International Co.</li>
<li><strong>DELL</strong> is a registered trademark of Dell Inc.</li>
<li><strong>ASUS</strong> is a registered trademark of ASUSTeK Computer.</li>
<li><strong>Alpine</strong> is a trademark of Alpine Linux Development Team.</li>
</ul>
<p>All other trademarks are the property of their respective owners.</p>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader left">
<div class="title">Trademarks</div>
<div class="text">
<p>The following trademarks are the properties of their respective owners as listed below. Should any trademark attribution be missing, mistaken or erroneous, please contact us as soon as possible for rectification.</p>
<ul>
<li><strong>Node.js</strong> is a trademark of Joyent Inc.</li>
<li><strong>Linux</strong> is a registered trademark of Linus Torvalds</li>
<li><strong>Apple, macOS, OS X</strong> are registered trademarks of Apple Inc.</li>
<li><strong>Windows</strong> is a registered trademark of Microsoft Corporation</li>
<li><strong>Intel</strong> is a trademark of Intel Corporation</li>
<li><strong>AMD</strong> is a trademark of Advanced Micro Devices Inc.</li>
<li><strong>Ryzen</strong> is a trademark of Advanced Micro Devices Inc.</li>
<li><strong>Raspberry Pi</strong> is a trademark of the Raspberry Pi Foundation</li>
<li><strong>Debian</strong> is a trademark of the Debian Project</li>
<li><strong>FreeBSD</strong> is a registered trademark of The FreeBSD Foundation</li>
<li><strong>NetBSD</strong> is a registered trademark of The NetBSD Foundation</li>
<li><strong>Docker</strong> is a trademark of Docker, Inc.</li>
<li><strong>Ubuntu</strong> is a trademark of Canonical Ltd.</li>
<li><strong>CentOS</strong> is a trademark of Read Hat Inc.</li>
<li><strong>Sun, Solaris, OpenSolaris</strong> are registered trademarks of Sun Microsystems</li>
<li><strong>Virtual Box</strong> are registered trademarks of Oracle Corporation</li>
<li><strong>BSD</strong> is a registered trademark of UUnet Technologies, Inc.</li>
<li><strong>UNIX</strong> is a registered trademark of The Open Group.</li>
<li><strong>NVIDIA</strong> is a registered trademark of NVIDIA Corporation.</li>
<li><strong>MSI</strong> is a registered trademark Micro-Star International Co.</li>
<li><strong>DELL</strong> is a registered trademark of Dell Inc.</li>
<li><strong>ASUS</strong> is a registered trademark of ASUSTeK Computer.</li>
<li><strong>Alpine</strong> is a trademark of Alpine Linux Development Team.</li>
</ul>
<p>All other trademarks are the property of their respective owners.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -118,4 +120,4 @@
</script>
</body>
</html>
</html>

View File

@ -37,414 +37,416 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Virtual Box</div>
<div class="text">
<p>In this section you will learn how to get information about virtual box VMs:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>VMs</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.vboxInfo(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>returns array of detailed info about all VMs</td>
</tr>
<tr>
<td></td>
<td>[0].id</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>virtual box ID</td>
</tr>
<tr>
<td></td>
<td>[0].name</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>name</td>
</tr>
<tr>
<td></td>
<td>[0].running</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>vbox is running</td>
</tr>
<tr>
<td></td>
<td>[0].started</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>started date time</td>
</tr>
<tr>
<td></td>
<td>[0].runningSince</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>running since (secs)</td>
</tr>
<tr>
<td></td>
<td>[0].stopped</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>stopped date time</td>
</tr>
<tr>
<td></td>
<td>[0].stoppedSince</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>stopped since (secs)</td>
</tr>
<tr>
<td></td>
<td>[0].guestOS</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Guest OS</td>
</tr>
<tr>
<td></td>
<td>[0].hardwareUUID</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Hardware UUID</td>
</tr>
<tr>
<td></td>
<td>[0].memory</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Memory in MB</td>
</tr>
<tr>
<td></td>
<td>[0].vram</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>VRAM in MB</td>
</tr>
<tr>
<td></td>
<td>[0].cpus</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>CPUs</td>
</tr>
<tr>
<td></td>
<td>[0].cpuExepCap</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>CPU exec cap</td>
</tr>
<tr>
<td></td>
<td>[0].cpuProfile</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>CPU profile</td>
</tr>
<tr>
<td></td>
<td>[0].chipset</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>chipset</td>
</tr>
<tr>
<td></td>
<td>[0].firmware</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>firmware</td>
</tr>
<tr>
<td></td>
<td>[0].pageFusion</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>page fusion</td>
</tr>
<tr>
<td></td>
<td>[0].configFile</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>config file</td>
</tr>
<tr>
<td></td>
<td>[0].snapshotFolder</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>snapshot folder</td>
</tr>
<tr>
<td></td>
<td>[0].logFolder</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>log folder path</td>
</tr>
<tr>
<td></td>
<td>[0].HPET</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>HPET</td>
</tr>
<tr>
<td></td>
<td>[0].PAE</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>PAE</td>
</tr>
<tr>
<td></td>
<td>[0].longMode</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>long mode</td>
</tr>
<tr>
<td></td>
<td>[0].tripleFaultReset</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>triple fault reset</td>
</tr>
<tr>
<td></td>
<td>[0].APIC</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>APIC</td>
</tr>
<tr>
<td></td>
<td>[0].X2APIC</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X2APIC</td>
</tr>
<tr>
<td></td>
<td>[0].ACPI</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>ACPI</td>
</tr>
<tr>
<td></td>
<td>[0].IOAPIC</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>IOAPIC</td>
</tr>
<tr>
<td></td>
<td>[0].biosAPICmode</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>BIOS APIC mode</td>
</tr>
<tr>
<td></td>
<td>[0].bootMenuMode</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>boot menu Mode</td>
</tr>
<tr>
<td></td>
<td>[0].bootDevice1</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bootDevice1</td>
</tr>
<tr>
<td></td>
<td>[0].bootDevice2</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bootDevice2</td>
</tr>
<tr>
<td></td>
<td>[0].bootDevice3</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bootDevice3</td>
</tr>
<tr>
<td></td>
<td>[0].bootDevice4</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bootDevice4</td>
</tr>
<tr>
<td></td>
<td>[0].timeOffset</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>time Offset</td>
</tr>
<tr>
<td></td>
<td>[0].RTC</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>RTC</td>
</tr>
</tbody>
</table>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Virtual Box</div>
<div class="text">
<p>In this section you will learn how to get information about virtual box VMs:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>VMs</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.vboxInfo(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>returns array of detailed info about all VMs</td>
</tr>
<tr>
<td></td>
<td>[0].id</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>virtual box ID</td>
</tr>
<tr>
<td></td>
<td>[0].name</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>name</td>
</tr>
<tr>
<td></td>
<td>[0].running</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>vbox is running</td>
</tr>
<tr>
<td></td>
<td>[0].started</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>started date time</td>
</tr>
<tr>
<td></td>
<td>[0].runningSince</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>running since (secs)</td>
</tr>
<tr>
<td></td>
<td>[0].stopped</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>stopped date time</td>
</tr>
<tr>
<td></td>
<td>[0].stoppedSince</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>stopped since (secs)</td>
</tr>
<tr>
<td></td>
<td>[0].guestOS</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Guest OS</td>
</tr>
<tr>
<td></td>
<td>[0].hardwareUUID</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Hardware UUID</td>
</tr>
<tr>
<td></td>
<td>[0].memory</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Memory in MB</td>
</tr>
<tr>
<td></td>
<td>[0].vram</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>VRAM in MB</td>
</tr>
<tr>
<td></td>
<td>[0].cpus</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>CPUs</td>
</tr>
<tr>
<td></td>
<td>[0].cpuExepCap</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>CPU exec cap</td>
</tr>
<tr>
<td></td>
<td>[0].cpuProfile</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>CPU profile</td>
</tr>
<tr>
<td></td>
<td>[0].chipset</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>chipset</td>
</tr>
<tr>
<td></td>
<td>[0].firmware</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>firmware</td>
</tr>
<tr>
<td></td>
<td>[0].pageFusion</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>page fusion</td>
</tr>
<tr>
<td></td>
<td>[0].configFile</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>config file</td>
</tr>
<tr>
<td></td>
<td>[0].snapshotFolder</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>snapshot folder</td>
</tr>
<tr>
<td></td>
<td>[0].logFolder</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>log folder path</td>
</tr>
<tr>
<td></td>
<td>[0].HPET</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>HPET</td>
</tr>
<tr>
<td></td>
<td>[0].PAE</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>PAE</td>
</tr>
<tr>
<td></td>
<td>[0].longMode</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>long mode</td>
</tr>
<tr>
<td></td>
<td>[0].tripleFaultReset</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>triple fault reset</td>
</tr>
<tr>
<td></td>
<td>[0].APIC</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>APIC</td>
</tr>
<tr>
<td></td>
<td>[0].X2APIC</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X2APIC</td>
</tr>
<tr>
<td></td>
<td>[0].ACPI</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>ACPI</td>
</tr>
<tr>
<td></td>
<td>[0].IOAPIC</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>IOAPIC</td>
</tr>
<tr>
<td></td>
<td>[0].biosAPICmode</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>BIOS APIC mode</td>
</tr>
<tr>
<td></td>
<td>[0].bootMenuMode</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>boot menu Mode</td>
</tr>
<tr>
<td></td>
<td>[0].bootDevice1</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bootDevice1</td>
</tr>
<tr>
<td></td>
<td>[0].bootDevice2</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bootDevice2</td>
</tr>
<tr>
<td></td>
<td>[0].bootDevice3</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bootDevice3</td>
</tr>
<tr>
<td></td>
<td>[0].bootDevice4</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bootDevice4</td>
</tr>
<tr>
<td></td>
<td>[0].timeOffset</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>time Offset</td>
</tr>
<tr>
<td></td>
<td>[0].RTC</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>RTC</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -486,4 +488,4 @@
</script>
</body>
</html>
</html>

View File

@ -37,149 +37,150 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Wifi</div>
<div class="text">
<p>In this section you will learn how to get detailed information about available wifi networks:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Wifi Networks</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.wifiNetworks(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>array of available wifi networks</td>
</tr>
<tr>
<td></td>
<td>[0].ssid</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>Wifi network SSID</td>
</tr>
<tr>
<td></td>
<td>[0].bssid</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>BSSID (mac)</td>
</tr>
<tr>
<td></td>
<td>[0].mode</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>mode</td>
</tr>
<tr>
<td></td>
<td>[0].channel</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>channel</td>
</tr>
<tr>
<td></td>
<td>[0].frequency</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>frequengy in MHz</td>
</tr>
<tr>
<td></td>
<td>[0].signalLevel</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>signal level in dB</td>
</tr>
<tr>
<td></td>
<td>[0].quality</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>quaility in %</td>
</tr>
<tr>
<td></td>
<td>[0].security</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>array e.g. WPA, WPA-2</td>
</tr>
<tr>
<td></td>
<td>[0].wpaFlags</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>array of WPA flags</td>
</tr>
<tr>
<td></td>
<td>[0].rsnFlags</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>array of RDN flags
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Wifi</div>
<div class="text">
<p>In this section you will learn how to get detailed information about available wifi networks:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Wifi Networks</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.wifiNetworks(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>array of available wifi networks</td>
</tr>
<tr>
<td></td>
<td>[0].ssid</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>Wifi network SSID</td>
</tr>
<tr>
<td></td>
<td>[0].bssid</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>BSSID (mac)</td>
</tr>
<tr>
<td></td>
<td>[0].mode</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>mode</td>
</tr>
<tr>
<td></td>
<td>[0].channel</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>channel</td>
</tr>
<tr>
<td></td>
<td>[0].frequency</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>frequengy in MHz</td>
</tr>
<tr>
<td></td>
<td>[0].signalLevel</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>signal level in dB</td>
</tr>
<tr>
<td></td>
<td>[0].quality</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>quaility in %</td>
</tr>
<tr>
<td></td>
<td>[0].security</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>array e.g. WPA, WPA-2</td>
</tr>
<tr>
<td></td>
<td>[0].wpaFlags</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>array of WPA flags</td>
</tr>
<tr>
<td></td>
<td>[0].rsnFlags</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>array of RDN flags
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.wifiNetworks().then(data => console.log(data));</code></pre class="example">
<pre class="example">
[
@ -209,19 +210,20 @@ si.wifiNetworks().then(data => console.log(data));</code></pre class="example">
},
...
]</pre>
</tr>
</tr>
</tbody>
</table>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -263,4 +265,4 @@ si.wifiNetworks().then(data => console.log(data));</code></pre class="example">
</script>
</body>
</html>
</html>

View File

@ -38,414 +38,416 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Virtual Box</div>
<div class="text">
<p>In this section you will learn how to get information about virtual box VMs:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>VMs</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.vboxInfo(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>returns array of detailed info about all VMs</td>
</tr>
<tr>
<td></td>
<td>[0].id</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>virtual box ID</td>
</tr>
<tr>
<td></td>
<td>[0].name</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>name</td>
</tr>
<tr>
<td></td>
<td>[0].running</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>vbox is running</td>
</tr>
<tr>
<td></td>
<td>[0].started</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>started date time</td>
</tr>
<tr>
<td></td>
<td>[0].runningSince</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>running since (secs)</td>
</tr>
<tr>
<td></td>
<td>[0].stopped</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>stopped date time</td>
</tr>
<tr>
<td></td>
<td>[0].stoppedSince</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>stopped since (secs)</td>
</tr>
<tr>
<td></td>
<td>[0].guestOS</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Guest OS</td>
</tr>
<tr>
<td></td>
<td>[0].hardwareUUID</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Hardware UUID</td>
</tr>
<tr>
<td></td>
<td>[0].memory</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Memory in MB</td>
</tr>
<tr>
<td></td>
<td>[0].vram</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>VRAM in MB</td>
</tr>
<tr>
<td></td>
<td>[0].cpus</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>CPUs</td>
</tr>
<tr>
<td></td>
<td>[0].cpuExepCap</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>CPU exec cap</td>
</tr>
<tr>
<td></td>
<td>[0].cpuProfile</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>CPU profile</td>
</tr>
<tr>
<td></td>
<td>[0].chipset</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>chipset</td>
</tr>
<tr>
<td></td>
<td>[0].firmware</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>firmware</td>
</tr>
<tr>
<td></td>
<td>[0].pageFusion</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>page fusion</td>
</tr>
<tr>
<td></td>
<td>[0].configFile</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>config file</td>
</tr>
<tr>
<td></td>
<td>[0].snapshotFolder</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>snapshot folder</td>
</tr>
<tr>
<td></td>
<td>[0].logFolder</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>log folder path</td>
</tr>
<tr>
<td></td>
<td>[0].hpet</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>HPET</td>
</tr>
<tr>
<td></td>
<td>[0].pae</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>PAE</td>
</tr>
<tr>
<td></td>
<td>[0].longMode</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>long mode</td>
</tr>
<tr>
<td></td>
<td>[0].tripleFaultReset</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>triple fault reset</td>
</tr>
<tr>
<td></td>
<td>[0].apic</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>APIC</td>
</tr>
<tr>
<td></td>
<td>[0].x2Apic</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X2APIC</td>
</tr>
<tr>
<td></td>
<td>[0].acpi</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>ACPI</td>
</tr>
<tr>
<td></td>
<td>[0].ioApic</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>IOAPIC</td>
</tr>
<tr>
<td></td>
<td>[0].biosApicMode</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>BIOS APIC mode</td>
</tr>
<tr>
<td></td>
<td>[0].bootMenuMode</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>boot menu Mode</td>
</tr>
<tr>
<td></td>
<td>[0].bootDevice1</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bootDevice1</td>
</tr>
<tr>
<td></td>
<td>[0].bootDevice2</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bootDevice2</td>
</tr>
<tr>
<td></td>
<td>[0].bootDevice3</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bootDevice3</td>
</tr>
<tr>
<td></td>
<td>[0].bootDevice4</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bootDevice4</td>
</tr>
<tr>
<td></td>
<td>[0].timeOffset</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>time Offset</td>
</tr>
<tr>
<td></td>
<td>[0].rtc</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>RTC</td>
</tr>
</tbody>
</table>
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Virtual Box</div>
<div class="text">
<p>In this section you will learn how to get information about virtual box VMs:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>VMs</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.vboxInfo(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>returns array of detailed info about all VMs</td>
</tr>
<tr>
<td></td>
<td>[0].id</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>virtual box ID</td>
</tr>
<tr>
<td></td>
<td>[0].name</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>name</td>
</tr>
<tr>
<td></td>
<td>[0].running</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>vbox is running</td>
</tr>
<tr>
<td></td>
<td>[0].started</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>started date time</td>
</tr>
<tr>
<td></td>
<td>[0].runningSince</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>running since (secs)</td>
</tr>
<tr>
<td></td>
<td>[0].stopped</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>stopped date time</td>
</tr>
<tr>
<td></td>
<td>[0].stoppedSince</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>stopped since (secs)</td>
</tr>
<tr>
<td></td>
<td>[0].guestOS</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Guest OS</td>
</tr>
<tr>
<td></td>
<td>[0].hardwareUUID</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Hardware UUID</td>
</tr>
<tr>
<td></td>
<td>[0].memory</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>Memory in MB</td>
</tr>
<tr>
<td></td>
<td>[0].vram</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>VRAM in MB</td>
</tr>
<tr>
<td></td>
<td>[0].cpus</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>CPUs</td>
</tr>
<tr>
<td></td>
<td>[0].cpuExepCap</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>CPU exec cap</td>
</tr>
<tr>
<td></td>
<td>[0].cpuProfile</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>CPU profile</td>
</tr>
<tr>
<td></td>
<td>[0].chipset</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>chipset</td>
</tr>
<tr>
<td></td>
<td>[0].firmware</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>firmware</td>
</tr>
<tr>
<td></td>
<td>[0].pageFusion</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>page fusion</td>
</tr>
<tr>
<td></td>
<td>[0].configFile</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>config file</td>
</tr>
<tr>
<td></td>
<td>[0].snapshotFolder</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>snapshot folder</td>
</tr>
<tr>
<td></td>
<td>[0].logFolder</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>log folder path</td>
</tr>
<tr>
<td></td>
<td>[0].hpet</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>HPET</td>
</tr>
<tr>
<td></td>
<td>[0].pae</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>PAE</td>
</tr>
<tr>
<td></td>
<td>[0].longMode</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>long mode</td>
</tr>
<tr>
<td></td>
<td>[0].tripleFaultReset</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>triple fault reset</td>
</tr>
<tr>
<td></td>
<td>[0].apic</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>APIC</td>
</tr>
<tr>
<td></td>
<td>[0].x2Apic</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X2APIC</td>
</tr>
<tr>
<td></td>
<td>[0].acpi</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>ACPI</td>
</tr>
<tr>
<td></td>
<td>[0].ioApic</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>IOAPIC</td>
</tr>
<tr>
<td></td>
<td>[0].biosApicMode</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>BIOS APIC mode</td>
</tr>
<tr>
<td></td>
<td>[0].bootMenuMode</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>boot menu Mode</td>
</tr>
<tr>
<td></td>
<td>[0].bootDevice1</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bootDevice1</td>
</tr>
<tr>
<td></td>
<td>[0].bootDevice2</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bootDevice2</td>
</tr>
<tr>
<td></td>
<td>[0].bootDevice3</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bootDevice3</td>
</tr>
<tr>
<td></td>
<td>[0].bootDevice4</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bootDevice4</td>
</tr>
<tr>
<td></td>
<td>[0].timeOffset</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>time Offset</td>
</tr>
<tr>
<td></td>
<td>[0].rtc</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>RTC</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -489,4 +491,4 @@
</script>
</body>
</html>
</html>

View File

@ -38,149 +38,150 @@
</div>
</nav>
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Wifi</div>
<div class="text">
<p>In this section you will learn how to get detailed information about available wifi networks, interfaces and connections:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Wifi Networks</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.wifiNetworks(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>array of available wifi networks</td>
</tr>
<tr>
<td></td>
<td>[0].ssid</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>Wifi network SSID</td>
</tr>
<tr>
<td></td>
<td>[0].bssid</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>BSSID (mac)</td>
</tr>
<tr>
<td></td>
<td>[0].mode</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>mode</td>
</tr>
<tr>
<td></td>
<td>[0].channel</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>channel</td>
</tr>
<tr>
<td></td>
<td>[0].frequency</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>frequengy in MHz</td>
</tr>
<tr>
<td></td>
<td>[0].signalLevel</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>signal level in dB</td>
</tr>
<tr>
<td></td>
<td>[0].quality</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>quaility in %</td>
</tr>
<tr>
<td></td>
<td>[0].security</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>array e.g. WPA, WPA-2</td>
</tr>
<tr>
<td></td>
<td>[0].wpaFlags</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>array of WPA flags</td>
</tr>
<tr>
<td></td>
<td>[0].rsnFlags</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>array of RDN flags
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
<div class="container-fluid">
<section class="container">
<div class="row">
<div class="col-12 col-md-4 col-lg-3 col-xl-2 menu" id="menu">
</div>
<div class="col-12 col-md-8 col-lg-9 col-xl-10 content">
<div class="row">
<div class="col-12 sectionheader">
<div class="title">Wifi</div>
<div class="text">
<p>In this section you will learn how to get detailed information about available wifi networks, interfaces and connections:</p>
<p>For function reference and examples we assume, that we imported <span class="code">systeminformation</span> as follows:</p>
<pre><code class="js">const si = require('systeminformation');</code></pre>
<h2>Wifi Networks</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.wifiNetworks(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>array of available wifi networks</td>
</tr>
<tr>
<td></td>
<td>[0].ssid</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>Wifi network SSID</td>
</tr>
<tr>
<td></td>
<td>[0].bssid</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>BSSID (mac)</td>
</tr>
<tr>
<td></td>
<td>[0].mode</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>mode</td>
</tr>
<tr>
<td></td>
<td>[0].channel</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>channel</td>
</tr>
<tr>
<td></td>
<td>[0].frequency</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>frequengy in MHz</td>
</tr>
<tr>
<td></td>
<td>[0].signalLevel</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>signal level in dB</td>
</tr>
<tr>
<td></td>
<td>[0].quality</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>quaility in %</td>
</tr>
<tr>
<td></td>
<td>[0].security</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>array e.g. WPA, WPA-2</td>
</tr>
<tr>
<td></td>
<td>[0].wpaFlags</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>array of WPA flags</td>
</tr>
<tr>
<td></td>
<td>[0].rsnFlags</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>array of RDN flags
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.wifiNetworks().then(data => console.log(data));</code></pre class="example">
<pre class="example">
[
@ -210,91 +211,91 @@ si.wifiNetworks().then(data => console.log(data));</code></pre class="example">
},
...
]</pre>
</tr>
</tr>
</tbody>
</table>
<h2>Wifi Interfaces</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.wifiInterfaces(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>array of detected wifi interfaces</td>
</tr>
<tr>
<td></td>
<td>[0].id</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>Wifi ID</td>
</tr>
<tr>
<td></td>
<td>[0].iface</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>interface</td>
</tr>
<tr>
<td></td>
<td>[0].model</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>model</td>
</tr>
<tr>
<td></td>
<td>[0].vendor</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>vendor</td>
</tr>
<tr>
<td></td>
<td>[0].mac</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>interface MAC</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tbody>
</table>
<h2>Wifi Interfaces</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.wifiInterfaces(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>array of detected wifi interfaces</td>
</tr>
<tr>
<td></td>
<td>[0].id</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>Wifi ID</td>
</tr>
<tr>
<td></td>
<td>[0].iface</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>interface</td>
</tr>
<tr>
<td></td>
<td>[0].model</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>model</td>
</tr>
<tr>
<td></td>
<td>[0].vendor</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>vendor</td>
</tr>
<tr>
<td></td>
<td>[0].mac</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>interface MAC</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.wifiInterfaces().then(data => console.log(data));</code></pre class="example">
<pre class="example">
[
@ -307,161 +308,161 @@ si.wifiInterfaces().then(data => console.log(data));</code></pre class="example"
},
...
]</pre>
</tr>
</tr>
</tbody>
</table>
<h2>Wifi Connections</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.wifiConnections(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>array of active wifi connections</td>
</tr>
<tr>
<td></td>
<td>[0].id</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>Wifi ID</td>
</tr>
<tr>
<td></td>
<td>[0].iface</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>interface</td>
</tr>
<tr>
<td></td>
<td>[0].name</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>name</td>
</tr>
<tr>
<td></td>
<td>[0].model</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>model</td>
</tr>
<tr>
<td></td>
<td>[0].ssid</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>Wifi network SSID</td>
</tr>
<tr>
<td></td>
<td>[0].bssid</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>BSSID (mac)</td>
</tr>
<tr>
<td></td>
<td>[0].channel</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>channel</td>
</tr>
<tr>
<td></td>
<td>[0].frequency</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>frequency</td>
</tr>
<tr>
<td></td>
<td>[0].type</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>WiFi type</td>
</tr>
<tr>
<td></td>
<td>[0].security</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>WiFi security</td>
</tr>
<tr>
<td></td>
<td>[0].signalLevel</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>signal level in dB</td>
</tr>
<tr>
<td></td>
<td>[0].txRate</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>transfer rate Mbit/s</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
</tbody>
</table>
<h2>Wifi Connections</h2>
<p>All functions in this section return a promise or can be called with a callback function (parameter <span class="code">cb</span> in the function reference)</p>
<table class="table table-sm table-bordered table-striped">
<thead>
<tr>
<th>Function</th>
<th>Result object</th>
<th>Linux</th>
<th>BSD</th>
<th>Mac</th>
<th>Win</th>
<th>Sun</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td>si.wifiConnections(cb)</td>
<td>[{...}]</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>array of active wifi connections</td>
</tr>
<tr>
<td></td>
<td>[0].id</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>Wifi ID</td>
</tr>
<tr>
<td></td>
<td>[0].iface</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>interface</td>
</tr>
<tr>
<td></td>
<td>[0].name</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>name</td>
</tr>
<tr>
<td></td>
<td>[0].model</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>model</td>
</tr>
<tr>
<td></td>
<td>[0].ssid</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>Wifi network SSID</td>
</tr>
<tr>
<td></td>
<td>[0].bssid</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>BSSID (mac)</td>
</tr>
<tr>
<td></td>
<td>[0].channel</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>channel</td>
</tr>
<tr>
<td></td>
<td>[0].frequency</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>frequency</td>
</tr>
<tr>
<td></td>
<td>[0].type</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>WiFi type</td>
</tr>
<tr>
<td></td>
<td>[0].security</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>WiFi security</td>
</tr>
<tr>
<td></td>
<td>[0].signalLevel</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>signal level in dB</td>
</tr>
<tr>
<td></td>
<td>[0].txRate</td>
<td>X</td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>transfer rate Mbit/s</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.wifiConnections().then(data => console.log(data));</code></pre class="example">
<pre class="example">
[
@ -481,19 +482,20 @@ si.wifiConnections().then(data => console.log(data));</code></pre class="example
},
...
]</pre>
</tr>
</tr>
</tbody>
</table>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="container-fluid">
</div>
<footer class="container-fluid footer">
<div class="container">
<div class="row">
<div class="col-lg-4 col-12">
@ -537,4 +539,4 @@ si.wifiConnections().then(data => console.log(data));</code></pre class="example
</script>
</body>
</html>
</html>