networkConnections() fix pid issue (macOS)

This commit is contained in:
Sebastian Hildebrandt 2025-12-08 20:07:25 +01:00
parent c6e8ae960a
commit 647d778c5f
52 changed files with 1547 additions and 1511 deletions

View File

@ -90,6 +90,7 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| Version | Date | Comment |
| ------- | ---------- | --------------------------------------------------------------------------------------------------- |
| 5.27.12 | 2025-12-09 | `networkConnections()` fix pid issue (macOS) |
| 5.27.11 | 2025-10-05 | `system()` added latest mac studio versions (macOS) |
| 5.27.10 | 2025-09-16 | `powerShell()` adapted params (windows) |
| 5.27.9 | 2025-09-13 | `typings` fsOpenFiles typings fixed |

View File

@ -192,8 +192,8 @@
<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">
si.audio().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
id: 0,
@ -222,6 +222,7 @@ si.audio().then(data => console.log(data));</code></pre class="example">
status: 'online'
}
]</pre>
</td>
</tr>
</tbody>
</table>
@ -230,8 +231,7 @@ si.audio().then(data => console.log(data));</code></pre class="example">
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -242,8 +242,8 @@
<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">
si.battery().then(data => console.log(data));</code></pre>
<pre class="example">
{
hasBattery: true,
cycleCount: 35,
@ -261,6 +261,7 @@ si.battery().then(data => console.log(data));</code></pre class="example">
manufacturer: 'Apple',
serial: 'F9Y19860Y9AH9XBAX'
}</pre>
</td>
</tr>
</tbody>
</table>
@ -276,8 +277,7 @@ si.battery().then(data => console.log(data));</code></pre class="example">
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -162,8 +162,8 @@
<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">
si.bluetoothDevices().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
device: 'Magic Mouse 2',
@ -186,6 +186,7 @@ si.bluetoothDevices().then(data => console.log(data));</code></pre class="exampl
connected: true
},
]</pre>
</td>
</tr>
</tbody>
</table>
@ -194,8 +195,7 @@ si.bluetoothDevices().then(data => console.log(data));</code></pre class="exampl
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -240,8 +240,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -79,8 +79,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -91,8 +91,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -332,8 +332,8 @@
<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">
si.cpu().then(data => console.log(data));</code></pre>
<pre class="example">
{
manufacturer: 'Intel®',
brand: 'Core™ i9-9900',
@ -355,6 +355,7 @@ si.cpu().then(data => console.log(data));</code></pre class="example">
virtualization: true,
cache: { l1d: 262144, l1i: 262144, l2: 2097152, l3: 16777216 }
}</pre>
</td>
</tr>
<tr>
<td>si.cpuFlags(cb)</td>
@ -371,10 +372,11 @@ si.cpu().then(data => console.log(data));</code></pre class="example">
<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">
si.cpuFlags().then(data => console.log(data));</code></pre>
<pre class="example">
fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
</pre>
</td>
</tr>
<tr>
<td>si.cpuCache(cb)</td>
@ -431,10 +433,11 @@ fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
<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">
si.cpuCache().then(data => console.log(data));</code></pre>
<pre class="example">
{ l1d: 262144, l1i: 262144, l2: 2097152, l3: 16777216 }
</pre>
</td>
</tr>
<tr>
<td>si.cpuCurrentSpeed(cb)</td>
@ -491,8 +494,8 @@ si.cpuCache().then(data => console.log(data));</code></pre class="example">
<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">
si.cpuCurrentSpeed().then(data => console.log(data));</code></pre>
<pre class="example">
{
min: 0.86,
max: 1.77,
@ -505,6 +508,7 @@ si.cpuCurrentSpeed().then(data => console.log(data));</code></pre class="example
]
}
</pre>
</td>
</tr>
<tr>
<td>si.cpuTemperature(cb)</td>
@ -571,8 +575,8 @@ si.cpuCurrentSpeed().then(data => console.log(data));</code></pre class="example
<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">
si.cpuTemperature().then(data => console.log(data));</code></pre>
<pre class="example">
{
main: 34,
cores: [
@ -584,6 +588,7 @@ si.cpuTemperature().then(data => console.log(data));</code></pre class="example"
chipset: 49
}
</pre>
</td>
</tr>
</tbody>
</table>
@ -611,8 +616,7 @@ si.cpuTemperature().then(data => console.log(data));</code></pre class="example"
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -1315,8 +1315,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -262,8 +262,8 @@
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.diskLayout().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.diskLayout().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
device: '/dev/nvme0n1',
@ -295,6 +295,7 @@ si.diskLayout().then(data => console.log(data));</code></pre class="example">
...
}
]</pre>
</td>
</tr>
<tr>
<td>si.blockDevices(cb)</td>
@ -451,8 +452,8 @@ si.diskLayout().then(data => console.log(data));</code></pre class="example">
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.blockDevices().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.blockDevices().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
name: 'nvme0n1',
@ -474,6 +475,7 @@ si.blockDevices().then(data => console.log(data));</code></pre class="example">
...
}
]</pre>
</td>
</tr>
<tr>
<td>si.disksIO(cb)</td>
@ -624,8 +626,8 @@ setInterval(function() {
si.disksIO().then(data => {
console.log(data);
})
}, 1000)</code></pre class="example">
<pre class="example">
}, 1000)</code></pre>
<pre class="example">
{ // first call
rIO: 899825,
wIO: 932331,
@ -644,6 +646,7 @@ setInterval(function() {
tIO_sec: 38.5395537525355,
ms: 986
}...</pre>
</td>
</tr>
</tbody>
</table>
@ -757,8 +760,8 @@ setInterval(function() {
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.fsSize().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.fsSize().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
fs: '/dev/md2',
@ -774,6 +777,7 @@ si.fsSize().then(data => console.log(data));</code></pre class="example">
...
}
]</pre>
</td>
</tr>
<tr>
<td>si.fsOpenFiles(cb)</td>
@ -820,13 +824,14 @@ si.fsSize().then(data => console.log(data));</code></pre class="example">
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.fsOpenFiles().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.fsOpenFiles().then(data => console.log(data));</code></pre>
<pre class="example">
{
max: 6566555,
allocated: 1856,
available: 0
}</pre>
</td>
</tr>
<tr>
<td>si.fsStats(cb)</td>
@ -917,8 +922,8 @@ setInterval(function() {
si.fsStats().then(data => {
console.log(data);
})
}, 1000)</code></pre class="example">
<pre class="example">
}, 1000)</code></pre>
<pre class="example">
{ // first call
rx: 14015849472,
wx: 15316003328,
@ -937,6 +942,7 @@ setInterval(function() {
tx_sec: 4083.748753738784,
ms: 1003
}...</pre>
</td>
</tr>
</tbody>
</table>
@ -964,8 +970,7 @@ setInterval(function() {
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -169,8 +169,8 @@ valueObject = {
system: 'model, manufacturer'
}
si.get(valueObject).then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.get(valueObject).then(data => console.log(data));</code></pre>
<pre class="example">
{
cpu: {
manufacturer: 'Intel®',
@ -203,8 +203,8 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
}
}
</pre>
</td>
</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>
@ -245,8 +245,8 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
valueObject = {
processLoad: '(postgres) pids, cpu'
}
si.get(valueObject).then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.get(valueObject).then(data => console.log(data));</code></pre>
<pre class="example">
{
processLoad: {
pids: [
@ -258,8 +258,8 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
}
}
</pre>
</td>
</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>
@ -299,8 +299,8 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
valueObject = {
networkInterfaces: 'iface, ip4 | iface:en0'
}
si.get(valueObject).then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.get(valueObject).then(data => console.log(data));</code></pre>
<pre class="example">
{
networkInterfaces: [
{
@ -310,8 +310,8 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
]
}
</pre>
</td>
</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>
@ -370,8 +370,7 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -137,8 +137,7 @@ async function cpuData() {
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -572,8 +572,8 @@
<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">
si.graphics().then(data => console.log(data));</code></pre>
<pre class="example">
{
controllers: [
{
@ -607,6 +607,7 @@ si.graphics().then(data => console.log(data));</code></pre class="example">
}
]
}</pre>
</td>
</tr>
</tbody>
</table>
@ -615,8 +616,7 @@ si.graphics().then(data => console.log(data));</code></pre class="example">
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -57,6 +57,11 @@
</tr>
</thead>
<tbody>
<tr>
<th scope="row">5.27.12</th>
<td>2025-12-09</td>
<td><span class="code">networkConnections()</span> fix pid issue (macOS)</td>
</tr>
<tr>
<th scope="row">5.27.11</th>
<td>2025-10-05</td>
@ -3257,12 +3262,12 @@
<tr>
<th scope="row">3.23.0</th>
<td>2017-06-22</td>
<td>added <span class="code">memLayout</span>, <span class="code">diskLayout</span>, extended windows support (<span class="code">inetChecksite<span class="code"></span></td>
<td>added <span class="code">memLayout</span>, <span class="code">diskLayout</span>, extended windows support (<span class="code">inetChecksite</span></td>
</tr>
<tr>
<th scope="row">3.22.0</th>
<td>2017-06-19</td>
<td>extended windows support (<span class="code">users<span class="code">, <span class="code">inetLatency</span>)</td>
<td>extended windows support (<span class="code">users</span>, <span class="code">inetLatency</span>)</td>
</tr>
<tr>
<th scope="row">3.21.0</th>
@ -3561,8 +3566,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -22,7 +22,7 @@
<title>systeminformation</title>
<script>
let vh = window.innerHeight * 0.01;
const vh = window.innerHeight * 0.01;
// Then we set the value in the --vh custom property to the root of the document
document.documentElement.style.setProperty('--vh', `${vh}px`);
@ -34,12 +34,12 @@
// });
function init() {
typed();
document.querySelector('.down').addEventListener('click', function () {
document.querySelector('.down').addEventListener('click', () => {
scrollIt(
document.querySelector('.quickstart'),
600,
'easeOutQuad',
function () {
() => {
console.log('READY');
}
);
@ -52,8 +52,8 @@
function getDownloads() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
var downloads = JSON.parse(this.responseText);
if (this.readyState === 4 && this.status === 200) {
const downloads = JSON.parse(this.responseText);
document.getElementById("downloads").innerHTML = numberWithCommas(downloads.downloads);
}
};
@ -63,8 +63,8 @@
function getVersion() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
var packageVersion = JSON.parse(this.responseText);
if (this.readyState === 4 && this.status === 200) {
const packageVersion = JSON.parse(this.responseText);
document.getElementById("version").innerHTML = packageVersion.version;
}
};
@ -126,7 +126,7 @@
};
const start = window.pageYOffset;
const startTime = 'now' in window.performance ? performance.now() : new Date().getTime();
const startTime = 'now' in window.performance ? performance.now() : Date.now();
const documentHeight = Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);
const windowHeight = window.innerHeight || document.documentElement.clientHeight || document.getElementsByTagName('body')[0].clientHeight;
@ -142,7 +142,7 @@
}
function scroll() {
const now = 'now' in window.performance ? performance.now() : new Date().getTime();
const now = 'now' in window.performance ? performance.now() : Date.now();
const time = Math.min(1, ((now - startTime) / duration));
const timeFunction = easings[easing](time);
window.scroll(0, Math.ceil((timeFunction * (destinationOffsetToScroll - start)) + start));
@ -170,7 +170,7 @@
<img class="logo" src="assets/logo.png" alt="logo">
<div class="title">systeminformation</div>
<div class="subtitle"><span id="typed"></span>&nbsp;</div>
3<div class="version">New Version: <span id="version">5.27.11</span></div>
<div class="version">New Version: <span id="version">5.27.12</span></div>
<button class="btn btn-light" onclick="location.href='https://github.com/sebhildebrandt/systeminformation'">View on Github <i class=" fab fa-github"></i></button>
</div>
<div class="down">
@ -212,7 +212,7 @@
<div class="title">Downloads last month</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
<div class="numbers">865</div>
<div class="numbers">901</div>
<div class="title">Dependents</div>
</div>
</div>
@ -395,9 +395,7 @@
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script>
window.onload = function (e) {
init();
}
window.onload = init;
</script>
</body>

View File

@ -95,8 +95,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -232,8 +232,8 @@
<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">
si.mem().then(data => console.log(data));</code></pre>
<pre class="example">
{
total: 67092135936,
free: 65769291776,
@ -251,6 +251,7 @@ si.mem().then(data => console.log(data));</code></pre class="example">
dirty: 8192
}
</pre>
</td>
</tr>
<tr>
<td>si.memLayout(cb)</td>
@ -387,8 +388,8 @@ si.mem().then(data => console.log(data));</code></pre class="example">
<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">
si.memLayout().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
size: 34359738368,
@ -420,6 +421,7 @@ si.memLayout().then(data => console.log(data));</code></pre class="example">
}
]
</pre>
</td>
</tr>
</tbody>
</table>
@ -428,8 +430,7 @@ si.memLayout().then(data => console.log(data));</code></pre class="example">
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -282,8 +282,8 @@
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.networkInterfaces().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.networkInterfaces().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
iface: 'lo0',
@ -333,8 +333,8 @@ si.networkInterfaces().then(data => console.log(data));</code></pre class="examp
<h5>Get Default Interface only</h5>
<p>&nbsp;&nbsp;With the 'default' parameter this function returns only the default interface</p>
<pre><code class="js">const si = require('systeminformation');
si.networkInterfaces('default').then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.networkInterfaces('default').then(data => console.log(data));</code></pre>
<pre class="example">
{
iface: 'en0',
ifaceName: 'en0',
@ -357,6 +357,7 @@ si.networkInterfaces('default').then(data => console.log(data));</code></pre cla
ieee8021xState: '',
carrierChanges: 0
}</pre>
</td>
</tr>
<tr>
<td>si.networkInterfaceDefault(cb)</td>
@ -373,9 +374,10 @@ si.networkInterfaces('default').then(data => console.log(data));</code></pre cla
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.networkInterfaceDefault().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.networkInterfaceDefault().then(data => console.log(data));</code></pre>
<pre class="example">
eth0</pre>
</td>
</tr>
<tr>
<td>si.networkGatewayDefault(cb)</td>
@ -392,9 +394,10 @@ eth0</pre>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.networkGatewayDefault().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.networkGatewayDefault().then(data => console.log(data));</code></pre>
<pre class="example">
192.168.0.1</pre>
</td>
</tr>
<tr>
<td>si.networkStats(iface,cb)</td>
@ -525,8 +528,8 @@ setInterval(function() {
si.networkStats().then(data => {
console.log(data);
})
}, 1000)</code></pre class="example">
<pre class="example">
}, 1000)</code></pre>
<pre class="example">
[
{ // first call
iface: 'en0',
@ -557,6 +560,7 @@ setInterval(function() {
ms: 985
}
]...</pre>
</td>
</tr>
<tr>
<td>si.networkConnections(cb)</td>
@ -653,8 +657,8 @@ setInterval(function() {
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.networkConnections().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.networkConnections().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
protocol: 'tcp4',
@ -678,6 +682,7 @@ si.networkConnections().then(data => console.log(data));</code></pre class="exam
},
...
]</pre>
</td>
</tr>
</tbody>
</table>
@ -751,14 +756,15 @@ si.networkConnections().then(data => console.log(data));</code></pre class="exam
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.inetChecksite('google.com').then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.inetChecksite('google.com').then(data => console.log(data));</code></pre>
<pre class="example">
{
url: 'google.com',
ok: true,
status: 301,
ms: 82
}</pre>
</td>
</tr>
<tr>
<td>si.inetLatency(host, cb)</td>
@ -775,14 +781,15 @@ si.inetChecksite('google.com').then(data => console.log(data));</code></pre clas
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.inetLatency().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.inetLatency().then(data => console.log(data));</code></pre>
<pre class="example">
13.484</pre>
<pre><code class="js">// Example with given host IP address
const si = require('systeminformation');
si.inetLatency('216.58.207.142').then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.inetLatency('216.58.207.142').then(data => console.log(data));</code></pre>
<pre class="example">
11.291</pre>
</td>
</tr>
</tbody>
</table>
@ -810,8 +817,7 @@ setInterval(function() {
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

File diff suppressed because it is too large Load Diff

View File

@ -172,8 +172,8 @@
<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">
si.printer().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
id: 0,
@ -198,6 +198,7 @@ si.printer().then(data => console.log(data));</code></pre class="example">
shared: true
}
]</pre>
</td>
</tr>
</tbody>
@ -207,8 +208,7 @@ si.printer().then(data => console.log(data));</code></pre class="example">
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

File diff suppressed because it is too large Load Diff

View File

@ -243,8 +243,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -114,19 +114,19 @@ let observer = si.observe(valueObject, 1000, usersCallback);
// In this example we stop our observer function after 30 seconds
setTimeout(() => {
clearInterval(observer)
}, 30000);</code></pre class="example">
</tr>
</tbody>
</table>
<p>The key names of the <span class="code">valueObject</span> must be exactly the same as the representing function in systeminformation.</p>
}, 30000);</code></pre>
</td>
</tr>
</table>
<p>The key names of the <span class="code">valueObject</span> must be exactly the same as the representing function in systeminformation.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -172,8 +172,8 @@
<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">
si.system().then(data => console.log(data));</code></pre>
<pre class="example">
{
manufacturer: 'Apple Inc.',
model: 'MacBookPro13,2',
@ -184,6 +184,7 @@ si.system().then(data => console.log(data));</code></pre class="example">
virtual: false,
}
</pre>
</td>
</tr>
<tr>
<td>si.uuid(cb)</td>
@ -230,8 +231,8 @@ si.system().then(data => console.log(data));</code></pre class="example">
<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">
si.uuid().then(data => console.log(data));</code></pre>
<pre class="example">
{
os: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
hardware: 'xxxxxxxxxxxxxx',
@ -242,6 +243,7 @@ si.uuid().then(data => console.log(data));</code></pre class="example">
]
}
</pre>
</td>
</tr>
<tr>
<td>si.bios(cb)</td>
@ -328,8 +330,8 @@ si.uuid().then(data => console.log(data));</code></pre class="example">
<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">
si.bios().then(data => console.log(data));</code></pre>
<pre class="example">
{
vendor: 'American Megatrends Inc.',
version: 'P4.20',
@ -349,6 +351,7 @@ si.bios().then(data => console.log(data));</code></pre class="example">
'UEFI'
]
}</pre>
</td>
</tr>
<tr>
<td>si.baseboard(cb)</td>
@ -435,8 +438,8 @@ si.bios().then(data => console.log(data));</code></pre class="example">
<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">
si.baseboard().then(data => console.log(data));</code></pre>
<pre class="example">
{
manufacturer: 'ASRock',
model: 'H310M-STX',
@ -446,6 +449,7 @@ si.baseboard().then(data => console.log(data));</code></pre class="example">
memMax: 68719476736
memSlots: 2
}</pre>
</td>
</tr>
<tr>
<td>si.chassis(cb)</td>
@ -532,8 +536,8 @@ si.baseboard().then(data => console.log(data));</code></pre class="example">
<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">
si.chassis().then(data => console.log(data));</code></pre>
<pre class="example">
{
manufacturer: 'Apple Inc.',
model: 'MacBookPro13,2',
@ -543,6 +547,7 @@ si.chassis().then(data => console.log(data));</code></pre class="example">
assetTag: 'Mac-99878xxxx...',
sku: 'A1706'
}</pre>
</td>
</tr>
</tbody>
</table>
@ -551,8 +556,7 @@ si.chassis().then(data => console.log(data));</code></pre class="example">
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -111,8 +111,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -87,8 +87,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -182,8 +182,8 @@
<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">
si.usb().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
bus: 1,
@ -233,6 +233,7 @@ si.usb().then(data => console.log(data));</code></pre class="example">
maxPower: '100mA',
serialNumber: null }
]</pre>
</td>
</tr>
</tbody>
@ -242,8 +243,7 @@ si.usb().then(data => console.log(data));</code></pre class="example">
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -231,8 +231,8 @@
<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">
si.battery().then(data => console.log(data));</code></pre>
<pre class="example">
{
hasbattery: true,
cyclecount: 35,
@ -250,6 +250,7 @@ si.battery().then(data => console.log(data));</code></pre class="example">
manufacturer: 'Apple',
serial: 'F9Y19860Y9AH9XBAX'
}</pre>
</td>
</tr>
</tbody>
</table>
@ -265,8 +266,7 @@ si.battery().then(data => console.log(data));</code></pre class="example">
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -75,8 +75,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -69,8 +69,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -311,8 +311,8 @@
<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">
si.cpu().then(data => console.log(data));</code></pre>
<pre class="example">
{
manufacturer: 'Intel®',
brand: 'Core™ i9-9900',
@ -333,6 +333,7 @@ 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>
</td>
</tr>
<tr>
<td>si.cpuFlags(cb)</td>
@ -349,10 +350,11 @@ si.cpu().then(data => console.log(data));</code></pre class="example">
<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">
si.cpuFlags().then(data => console.log(data));</code></pre>
<pre class="example">
fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
</pre>
</td>
</tr>
<tr>
<td>si.cpuCache(cb)</td>
@ -409,10 +411,11 @@ fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
<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">
si.cpuCache().then(data => console.log(data));</code></pre>
<pre class="example">
{ l1d: 262144, l1i: 262144, l2: 2, l3: 16 }
</pre>
</td>
</tr>
<tr>
<td>si.cpuCurrentspeed(cb)</td>
@ -469,8 +472,8 @@ si.cpuCache().then(data => console.log(data));</code></pre class="example">
<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">
si.cpuCurrentspeed().then(data => console.log(data));</code></pre>
<pre class="example">
{
min: 0.86,
max: 1.77,
@ -483,6 +486,7 @@ si.cpuCurrentspeed().then(data => console.log(data));</code></pre class="example
]
}
</pre>
</td>
</tr>
<tr>
<td>si.cpuTemperature(cb)</td>
@ -529,10 +533,11 @@ si.cpuCurrentspeed().then(data => console.log(data));</code></pre class="example
<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">
si.cpuTemperature().then(data => console.log(data));</code></pre>
<pre class="example">
{ main: 42, cores: [], max: 42 }
</pre>
</td>
</tr>
</tbody>
</table>
@ -558,8 +563,7 @@ si.cpuTemperature().then(data => console.log(data));</code></pre class="example"
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -1043,8 +1043,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -251,8 +251,8 @@
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.diskLayout().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.diskLayout().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
device: '/dev/nvme0n1',
@ -284,6 +284,7 @@ si.diskLayout().then(data => console.log(data));</code></pre class="example">
...
}
]</pre>
</td>
</tr>
<tr>
<td>si.blockDevices(cb)</td>
@ -420,8 +421,8 @@ si.diskLayout().then(data => console.log(data));</code></pre class="example">
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.blockDevices().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.blockDevices().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
name: 'nvme0n1',
@ -442,6 +443,7 @@ si.blockDevices().then(data => console.log(data));</code></pre class="example">
...
}
]</pre>
</td>
</tr>
<tr>
<td>si.disksIO(cb)</td>
@ -532,8 +534,8 @@ setInterval(function() {
si.disksIO().then(data => {
console.log(data);
})
}, 1000)</code></pre class="example">
<pre class="example">
}, 1000)</code></pre>
<pre class="example">
{ // first call
rIO: 899825,
wIO: 932331,
@ -552,6 +554,7 @@ setInterval(function() {
tIO_sec: 38.5395537525355,
ms: 986
}...</pre>
</td>
</tr>
</tbody>
</table>
@ -645,8 +648,8 @@ setInterval(function() {
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.fsSize().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.fsSize().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
fs: '/dev/md2',
@ -660,6 +663,7 @@ si.fsSize().then(data => console.log(data));</code></pre class="example">
...
}
]</pre>
</td>
</tr>
<tr>
<td>si.fsOpenFiles(cb)</td>
@ -706,13 +710,14 @@ si.fsSize().then(data => console.log(data));</code></pre class="example">
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.fsOpenFiles().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.fsOpenFiles().then(data => console.log(data));</code></pre>
<pre class="example">
{
max: 6566555,
allocated: 1856,
available: 0
}</pre>
</td>
</tr>
<tr>
<td>si.fsStats(cb)</td>
@ -803,8 +808,8 @@ setInterval(function() {
si.fsStats().then(data => {
console.log(data);
})
}, 1000)</code></pre class="example">
<pre class="example">
}, 1000)</code></pre>
<pre class="example">
{ // first call
rx: 14015849472,
wx: 15316003328,
@ -823,6 +828,7 @@ setInterval(function() {
tx_sec: 4083.748753738784,
ms: 1003
}...</pre>
</td>
</tr>
</tbody>
</table>
@ -850,8 +856,7 @@ setInterval(function() {
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -168,8 +168,8 @@ valueObject = {
system: 'model, manufacturer'
}
si.get(valueObject).then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.get(valueObject).then(data => console.log(data));</code></pre>
<pre class="example">
{
cpu: {
manufacturer: 'Intel®',
@ -200,8 +200,8 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
}
}
</pre>
</td>
</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>
@ -242,8 +242,8 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
valueObject = {
processLoad: 'pids, cpu (postgres)'
}
si.get(valueObject).then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.get(valueObject).then(data => console.log(data));</code></pre>
<pre class="example">
{
processLoad: {
pids: [
@ -255,8 +255,8 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
}
}
</pre>
</td>
</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>
@ -315,8 +315,7 @@ si.get(valueObject).then(data => console.log(data));</code></pre class="example"
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -130,13 +130,13 @@ async function cpuData() {
}</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>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -471,8 +471,8 @@
<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">
si.graphics().then(data => console.log(data));</code></pre>
<pre class="example">
{
controllers: [
{
@ -503,6 +503,7 @@ si.graphics().then(data => console.log(data));</code></pre class="example">
}
]
}</pre>
</td>
</tr>
</tbody>
</table>
@ -511,8 +512,7 @@ si.graphics().then(data => console.log(data));</code></pre class="example">
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -1804,12 +1804,12 @@
<tr>
<th scope="row">3.23.0</th>
<td>2017-06-22</td>
<td>added <span class="code">memLayout</span>, <span class="code">diskLayout</span>, extended windows support (<span class="code">inetChecksite<span class="code"></span></td>
<td>added <span class="code">memLayout</span>, <span class="code">diskLayout</span>, extended windows support (<span class="code">inetChecksite</span></td>
</tr>
<tr>
<th scope="row">3.22.0</th>
<td>2017-06-19</td>
<td>extended windows support (<span class="code">users<span class="code">, <span class="code">inetLatency</span>)</td>
<td>extended windows support (<span class="code">users, inetLatency</span>)</td>
</tr>
<tr>
<th scope="row">3.21.0</th>
@ -2108,8 +2108,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -51,8 +51,8 @@
function getDownloads() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
var downloads = JSON.parse(this.responseText);
if (this.readyState === 4 && this.status === 200) {
let downloads = JSON.parse(this.responseText);
document.getElementById("downloads").innerHTML = numberWithCommas(downloads.downloads);
}
};
@ -62,8 +62,8 @@
function getVersion() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
var packageVersion = JSON.parse(this.responseText);
if (this.readyState === 4 && this.status === 200) {
const packageVersion = JSON.parse(this.responseText);
document.getElementById("version").innerHTML = packageVersion.version;
}
};
@ -71,7 +71,7 @@
xhttp.send();
}
function typed() {
var options = {
const options = {
strings: ["System and OS information library for node.js", "Get detailed hardware, system &amp; OS information.", "For Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD, SunOS"],
typeSpeed: 60,
loop: false,

View File

@ -89,8 +89,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -201,8 +201,8 @@
<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">
si.mem().then(data => console.log(data));</code></pre>
<pre class="example">
{
total: 67092135936,
free: 65769291776,
@ -218,6 +218,7 @@ si.mem().then(data => console.log(data));</code></pre class="example">
swapfree: 8589930496
}
</pre>
</td>
</tr>
<tr>
<td>si.memLayout(cb)</td>
@ -344,8 +345,8 @@ si.mem().then(data => console.log(data));</code></pre class="example">
<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">
si.memLayout().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
size: 34359738368,
@ -375,6 +376,7 @@ si.memLayout().then(data => console.log(data));</code></pre class="example">
}
]
</pre>
</td>
</tr>
</tbody>
</table>
@ -383,8 +385,7 @@ si.memLayout().then(data => console.log(data));</code></pre class="example">
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -271,8 +271,8 @@
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.networkInterfaces().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.networkInterfaces().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
iface: 'lo0',
@ -317,6 +317,7 @@ si.networkInterfaces().then(data => console.log(data));</code></pre class="examp
carrierChanges: 0
}, ...
]</pre>
</td>
</tr>
<tr>
<td>si.networkInterfaceDefault(cb)</td>
@ -333,9 +334,10 @@ si.networkInterfaces().then(data => console.log(data));</code></pre class="examp
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.networkInterfaceDefault().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.networkInterfaceDefault().then(data => console.log(data));</code></pre>
<pre class="example">
eth0</pre>
</td>
</tr>
<tr>
<td>si.networkGatewayDefault(cb)</td>
@ -352,9 +354,10 @@ eth0</pre>
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.networkGatewayDefault().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.networkGatewayDefault().then(data => console.log(data));</code></pre>
<pre class="example">
192.168.0.1</pre>
</td>
</tr>
<tr>
<td>si.networkStats(iface,cb)</td>
@ -485,8 +488,8 @@ setInterval(function() {
si.networkStats().then(data => {
console.log(data);
})
}, 1000)</code></pre class="example">
<pre class="example">
}, 1000)</code></pre>
<pre class="example">
[
{ // first call
iface: 'en0',
@ -517,6 +520,7 @@ setInterval(function() {
ms: 985
}
]...</pre>
</td>
</tr>
<tr>
<td>si.networkConnections(cb)</td>
@ -613,8 +617,8 @@ setInterval(function() {
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.networkConnections().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.networkConnections().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
protocol: 'tcp4',
@ -638,6 +642,7 @@ si.networkConnections().then(data => console.log(data));</code></pre class="exam
},
...
]</pre>
</td>
</tr>
</tbody>
</table>
@ -711,14 +716,15 @@ si.networkConnections().then(data => console.log(data));</code></pre class="exam
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.inetChecksite('google.com').then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.inetChecksite('google.com').then(data => console.log(data));</code></pre>
<pre class="example">
{
url: 'google.com',
ok: true,
status: 301,
ms: 82
}</pre>
</td>
</tr>
<tr>
<td>si.inetLatency(host, cb)</td>
@ -735,14 +741,15 @@ si.inetChecksite('google.com').then(data => console.log(data));</code></pre clas
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.inetLatency().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.inetLatency().then(data => console.log(data));</code></pre>
<pre class="example">
13.484</pre>
<pre><code class="js">// Example with given host IP address
const si = require('systeminformation');
si.inetLatency('216.58.207.142').then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.inetLatency('216.58.207.142').then(data => console.log(data));</code></pre>
<pre class="example">
11.291</pre>
</td>
</tr>
</tbody>
</table>
@ -770,8 +777,7 @@ setInterval(function() {
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -221,8 +221,8 @@
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.osInfo().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.osInfo().then(data => console.log(data));</code></pre>
<pre class="example">
{
platform: 'darwin',
distro: 'Mac OS X',
@ -239,6 +239,7 @@ si.osInfo().then(data => console.log(data));</code></pre class="example">
servicepack: '',
uefi: true
}</pre>
</td>
</tr>
<tr>
<td>si.uuid(cb)</td>
@ -565,8 +566,8 @@ si.osInfo().then(data => console.log(data));</code></pre class="example">
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.versions().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.versions().then(data => console.log(data));</code></pre>
<pre class="example">
{
kernel: '19.3.0',
openssl: '1.1.1d',
@ -601,13 +602,14 @@ si.versions().then(data => console.log(data));</code></pre class="example">
}</pre>
<h5>Example 2</h5>
<pre><code class="js">const si = require('systeminformation');
si.versions('npm, php, postgresql').then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.versions('npm, php, postgresql').then(data => console.log(data));</code></pre>
<pre class="example">
{
npm: '6.13.6',
php: '7.3.11',
postgresql: '12.1'
}</pre>
</td>
</tr>
<tr>
<td>si.users(cb)</td>
@ -684,8 +686,8 @@ si.versions('npm, php, postgresql').then(data => console.log(data));</code></pre
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.users().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.users().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
user: 'yourname',
@ -704,6 +706,7 @@ si.users().then(data => console.log(data));</code></pre class="example">
command: '-bash'
}
]</pre>
</td>
</tr>
</tbody>
</table>
@ -712,8 +715,7 @@ si.users().then(data => console.log(data));</code></pre class="example">
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -171,8 +171,8 @@
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.currentLoad().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.currentLoad().then(data => console.log(data));</code></pre>
<pre class="example">
{
avgload: 0.23,
currentload: 4.326328800988875,
@ -205,6 +205,7 @@ si.currentLoad().then(data => console.log(data));</code></pre class="example">
...
]
}</pre>
</td>
</tr>
<tr>
<td>si.fullLoad(cb)</td>
@ -471,8 +472,8 @@ si.currentLoad().then(data => console.log(data));</code></pre class="example">
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.processes().then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.processes().then(data => console.log(data));</code></pre>
<pre class="example">
{
all: 258,
running: 1,
@ -503,6 +504,7 @@ si.processes().then(data => console.log(data));</code></pre class="example">
...
]
}</pre>
</td>
</tr>
<tr>
<td>si.processLoad('nginx',cb)</td>
@ -569,8 +571,8 @@ si.processes().then(data => console.log(data));</code></pre class="example">
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.processLoad('nginx').then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.processLoad('nginx').then(data => console.log(data));</code></pre>
<pre class="example">
{
proc: 'nginx',
pid: 11267,
@ -585,6 +587,7 @@ si.processLoad('nginx').then(data => console.log(data));</code></pre class="exam
cpu: 0.01,
mem: 0
}</pre>
</td>
</tr>
<tr>
<td>si.services('mysql, apache2', cb)</td>
@ -661,8 +664,8 @@ si.processLoad('nginx').then(data => console.log(data));</code></pre class="exam
<td colspan="7">
<h5>Example</h5>
<pre><code class="js">const si = require('systeminformation');
si.services('mysql, postgres').then(data => console.log(data));</code></pre class="example">
<pre class="example">
si.services('mysql, postgres').then(data => console.log(data));</code></pre>
<pre class="example">
[
{
name: 'mysql',
@ -681,6 +684,7 @@ si.services('mysql, postgres').then(data => console.log(data));</code></pre clas
pmem: 0
},
]</pre>
</td>
</tr>
</tbody>
</table>
@ -708,8 +712,7 @@ si.services('mysql, postgres').then(data => console.log(data));</code></pre clas
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -152,9 +152,9 @@
<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
&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>
@ -169,9 +169,9 @@
<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
&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>
@ -186,9 +186,9 @@
<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
&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>
@ -205,8 +205,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -113,19 +113,18 @@ let observer = si.observe(valueObject, 1000, usersCallback);
// In this example we stop our observer function after 30 seconds
setTimeout(() => {
clearInterval(observer)
}, 30000);</code></pre class="example">
</tr>
</tbody>
</table>
<p>The key names of the <span class="code">valueObject</span> must be exactly the same as the representing function in systeminformation.</p>
}, 30000);</code></pre>
</td>
</tr>
</table>
<p>The key names of the <span class="code">valueObject</span> must be exactly the same as the representing function in systeminformation.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -161,8 +161,8 @@
<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">
si.system().then(data => console.log(data));</code></pre>
<pre class="example">
{
manufacturer: 'Apple Inc.',
model: 'MacBookPro13,2',
@ -173,6 +173,7 @@ si.system().then(data => console.log(data));</code></pre class="example">
virtual: false,
}
</pre>
</td>
</tr>
<tr>
<td>si.bios(cb)</td>
@ -229,14 +230,15 @@ si.system().then(data => console.log(data));</code></pre class="example">
<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">
si.bios().then(data => console.log(data));</code></pre>
<pre class="example">
{
vendor: 'American Megatrends Inc.',
version: 'P4.20',
releaseDate: '2019-09-05',
revision: '5.13'
}</pre>
</td>
</tr>
<tr>
<td>si.baseboard(cb)</td>
@ -303,8 +305,8 @@ si.bios().then(data => console.log(data));</code></pre class="example">
<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">
si.baseboard().then(data => console.log(data));</code></pre>
<pre class="example">
{
manufacturer: 'ASRock',
model: 'H310M-STX',
@ -312,6 +314,7 @@ si.baseboard().then(data => console.log(data));</code></pre class="example">
serial: 'C80-xxxxxxxxxxx',
assetTag: ''
}</pre>
</td>
</tr>
<tr>
<td>si.chassis(cb)</td>
@ -398,8 +401,8 @@ si.baseboard().then(data => console.log(data));</code></pre class="example">
<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">
si.chassis().then(data => console.log(data));</code></pre>
<pre class="example">
{
manufacturer: 'Apple Inc.',
model: 'MacBookPro13,2',
@ -409,6 +412,7 @@ si.chassis().then(data => console.log(data));</code></pre class="example">
assetTag: 'Mac-99878xxxx...',
sku: ''
}</pre>
</td>
</tr>
</tbody>
</table>
@ -417,8 +421,7 @@ si.chassis().then(data => console.log(data));</code></pre class="example">
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -75,8 +75,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -443,8 +443,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -174,15 +174,15 @@
<td></td>
<td></td>
<td></td>
<td>array of RDN flags
<td>array of RDN flags</td>
</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">
si.wifiNetworks().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
ssid: 'INTERNAL-WIFI',
@ -210,8 +210,8 @@ si.wifiNetworks().then(data => console.log(data));</code></pre class="example">
},
...
]</pre>
</td>
</tr>
</tbody>
</table>
@ -220,8 +220,7 @@ si.wifiNetworks().then(data => console.log(data));</code></pre class="example">
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -444,8 +444,7 @@
</div>
</div>
</div>
</div>
</section>
</section>
</div>
<footer class="container-fluid footer">
<div class="container">

View File

@ -182,8 +182,8 @@
<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">
si.wifiNetworks().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
ssid: 'INTERNAL-WIFI',
@ -296,8 +296,8 @@ si.wifiNetworks().then(data => console.log(data));</code></pre class="example">
<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">
si.wifiInterfaces().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
id: 'Wi-Fi',
@ -463,8 +463,8 @@ si.wifiInterfaces().then(data => console.log(data));</code></pre class="example"
<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">
si.wifiConnections().then(data => console.log(data));</code></pre>
<pre class="example">
[
{
id: 'Wi-Fi',

View File

@ -1563,7 +1563,7 @@ function networkConnections(callback) {
lines.shift();
let pidPos = 8;
if (lines.length > 1 && lines[0].indexOf('pid') > 0) {
const header = (lines.shift() || '').replace(/ Address/g, '_Address').replace(/ +/g, ' ').split(' ');
const header = (lines.shift() || '').replace(/ Address/g, '_Address').replace(/process:/g, "").replace(/ +/g, ' ').split(' ');
pidPos = header.indexOf('pid');
}
lines.forEach(function (line) {
@ -1587,7 +1587,17 @@ function networkConnections(callback) {
}
const hasState = states.indexOf(line[5]) >= 0;
let connstate = hasState ? line[5] : 'UNKNOWN';
let pid = parseInt(line[pidPos + (hasState ? 0 : -1)], 10);
let pidField = "";
if (line[line.length - 9].indexOf(":") >= 0) {
pidField = line[line.length - 9].split(":")[1];
} else {
pidField = line[pidPos + (hasState ? 0 : -1)];
if (pidField.indexOf(":") >= 0) {
pidField = pidField.split(":")[1];
}
}
let pid = parseInt(pidField, 10);
if (connstate) {
result.push({
protocol: line[0],