systeminformation 5.23.13 → 5.23.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +216 -139
- package/lib/system.js +6 -6
- package/lib/users.js +1 -1
- package/lib/util.js +1161 -0
- package/lib/wifi.js +49 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -19,31 +19,64 @@
|
|
|
19
19
|
<a href="https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md">Changelog</a>
|
|
20
20
|
</p>
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
22
|
+
[![NPM Version][npm-image]][npm-url]
|
|
23
|
+
[![NPM Downloads][downloads-image]][downloads-url]
|
|
24
|
+
[![Git Issues][issues-img]][issues-url]
|
|
25
|
+
[![Closed Issues][closed-issues-img]][closed-issues-url]
|
|
26
|
+
<img src="docs/assets/no-dependencies.svg" alt="no dependencies">
|
|
27
|
+
[![Sponsoring][sponsor-badge]][sponsor-url]
|
|
28
|
+
[![Caretaker][caretaker-image]][caretaker-url]
|
|
29
|
+
[![MIT license][license-img]][license-url]
|
|
30
30
|
|
|
31
31
|
## The Systeminformation Project
|
|
32
|
-
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
.''.
|
|
35
|
+
.''. . *''* :_\/_:
|
|
36
|
+
:_\/_: _\(/_ .:.*_\/_* : /\ :
|
|
37
|
+
.''.: /\ : ./)\ ':'* /\ * : '..'.
|
|
38
|
+
:_\/_:'.:::. ' *''* * '.\'/.' _\(/_
|
|
39
|
+
: /\ : ::::: *_\/_* -= o =- /)\
|
|
40
|
+
'..' ':::' * /\ * .'/.\'. '
|
|
41
|
+
*..* :
|
|
42
|
+
*
|
|
43
|
+
* /.\ * * . *
|
|
44
|
+
. /..'\ . . * .
|
|
45
|
+
*/'.'\* . . . * *
|
|
46
|
+
* /.''.'\ * . . . *
|
|
47
|
+
. */.'.'.\*
|
|
48
|
+
.........".""""/'.''.'.\""."."........".".".......................
|
|
49
|
+
^^^[_]^^^*
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
I wish you all a Merry Christmas and a peaceful New Year 2025.
|
|
53
|
+
|
|
54
|
+
This is amazing. Started as a small project just for myself, it now has > 17,000
|
|
55
|
+
lines of code, > 650 versions published, up to 8 mio downloads per month, > 330
|
|
56
|
+
mio downloads overall. #1 NPM ranking for backend packages. Thank you to all who
|
|
57
|
+
contributed to this project!
|
|
33
58
|
|
|
34
59
|
## Please support this project ... ☕️
|
|
35
60
|
|
|
36
|
-
Over the past few years I spent **more than
|
|
61
|
+
Over the past few years I spent **more than 3.000 hours** working on this
|
|
62
|
+
project and invested in hardware to be able to test on different platforms.
|
|
63
|
+
Currently I am working very hard on the next **new version 6.0** completely
|
|
64
|
+
rewritten in TypeScript and with a lot of new features. Any support is highly
|
|
65
|
+
appreciated - [Buy me a coffee](https://www.buymeacoffee.com/systeminfo).
|
|
37
66
|
|
|
38
|
-
**Your contribution** make it possible for me to keep working on this project,
|
|
67
|
+
**Your contribution** make it possible for me to keep working on this project,
|
|
68
|
+
add new features and support more platforms. Thank you in advance!
|
|
39
69
|
|
|
40
70
|
## New Version 5.0
|
|
41
71
|
|
|
42
|
-
The new Version 5 is here - this next major version release 5.0 comes with new
|
|
72
|
+
The new Version 5 is here - this next major version release 5.0 comes with new
|
|
73
|
+
functionality and several improvements and changes (some of them are breaking
|
|
74
|
+
changes!):
|
|
43
75
|
|
|
44
76
|
- added audio: get detailed audio device information
|
|
45
77
|
- added bluetooth: get detailed bluetooth device information
|
|
46
|
-
- added dockerImages, dockerVolumes: get detailed information about docker
|
|
78
|
+
- added dockerImages, dockerVolumes: get detailed information about docker
|
|
79
|
+
images and volumes
|
|
47
80
|
- added printer: get information from detected printers
|
|
48
81
|
- added usb: get detailed usb controller and device information
|
|
49
82
|
- added wifi interfaces and connections: extended wifi information
|
|
@@ -52,23 +85,32 @@ The new Version 5 is here - this next major version release 5.0 comes with new f
|
|
|
52
85
|
- better/extended system info detection
|
|
53
86
|
- Apple Silicon M1/M2/M3 support
|
|
54
87
|
- better Raspberry-PI detection
|
|
55
|
-
- systeminformation website updated and extended with full documentation and
|
|
88
|
+
- systeminformation website updated and extended with full documentation and
|
|
89
|
+
examples [systeminformation.io][systeminformation-url]
|
|
56
90
|
- lot of minor improvements
|
|
57
91
|
|
|
58
|
-
Breaking Changes in version 5: you will see several breaking changes for the
|
|
92
|
+
Breaking Changes in version 5: you will see several breaking changes for the
|
|
93
|
+
sake of a more consistent API interface and to be future proof. Read the
|
|
94
|
+
[detailed version 5 changes][changes5-url].
|
|
59
95
|
|
|
60
|
-
I did a lot of testing on different platforms and machines but of course there
|
|
96
|
+
I did a lot of testing on different platforms and machines but of course there
|
|
97
|
+
might be some issues that I am not aware of. I would be happy if you inform me
|
|
98
|
+
when you discover any issues. Issues can be [opened here][new-issue].
|
|
61
99
|
|
|
62
100
|
## Quick Start
|
|
63
101
|
|
|
64
|
-
Lightweight collection of 50+ functions to retrieve detailed hardware, system
|
|
102
|
+
Lightweight collection of 50+ functions to retrieve detailed hardware, system
|
|
103
|
+
and OS information.
|
|
65
104
|
|
|
66
105
|
- simple to use
|
|
67
|
-
- get detailed information about system, cpu, baseboard, battery, memory,
|
|
68
|
-
|
|
106
|
+
- get detailed information about system, cpu, baseboard, battery, memory,
|
|
107
|
+
disks/filesystem, network, docker, software, services and processes
|
|
108
|
+
- supports Linux, macOS, partial Windows, FreeBSD, OpenBSD, NetBSD, SunOS and
|
|
109
|
+
Android support
|
|
69
110
|
- no npm dependencies
|
|
70
111
|
|
|
71
|
-
**Attention**: this is a `node.js` library. It is supposed to be used as a
|
|
112
|
+
**Attention**: this is a `node.js` library. It is supposed to be used as a
|
|
113
|
+
backend/server-side library and will definitely not work within a browser.
|
|
72
114
|
|
|
73
115
|
### Installation
|
|
74
116
|
|
|
@@ -84,7 +126,8 @@ npm i systeminformation
|
|
|
84
126
|
|
|
85
127
|
### Give it a try with `npx`?
|
|
86
128
|
|
|
87
|
-
You just want to give it a try - right from your command line without installing
|
|
129
|
+
You just want to give it a try - right from your command line without installing
|
|
130
|
+
it? Here is how you can call it with `npx`:
|
|
88
131
|
|
|
89
132
|
```
|
|
90
133
|
# get basic system info (System, OS, CPU)
|
|
@@ -94,10 +137,10 @@ npx systeminformation info
|
|
|
94
137
|
npx systeminformation
|
|
95
138
|
```
|
|
96
139
|
|
|
97
|
-
|
|
98
140
|
#### Still need Version 4?
|
|
99
141
|
|
|
100
|
-
If you need version 4 (for compatibility reasons), you can install version 4
|
|
142
|
+
If you need version 4 (for compatibility reasons), you can install version 4
|
|
143
|
+
(latest release) like this
|
|
101
144
|
|
|
102
145
|
```bash
|
|
103
146
|
npm install systeminformation@4 —save
|
|
@@ -111,15 +154,16 @@ npm install systeminformation@4
|
|
|
111
154
|
|
|
112
155
|
### Usage
|
|
113
156
|
|
|
114
|
-
All functions (except `version` and `time`) are implemented as asynchronous
|
|
157
|
+
All functions (except `version` and `time`) are implemented as asynchronous
|
|
158
|
+
functions. Here a small example how to use them:
|
|
115
159
|
|
|
116
160
|
```js
|
|
117
|
-
const si = require(
|
|
161
|
+
const si = require("systeminformation");
|
|
118
162
|
|
|
119
163
|
// promises style - new since version 3
|
|
120
164
|
si.cpu()
|
|
121
|
-
.then(data => console.log(data))
|
|
122
|
-
.catch(error => console.error(error));
|
|
165
|
+
.then((data) => console.log(data))
|
|
166
|
+
.catch((error) => console.error(error));
|
|
123
167
|
```
|
|
124
168
|
|
|
125
169
|
## News and Changes
|
|
@@ -140,7 +184,8 @@ si.cpu()
|
|
|
140
184
|
- Version 5.14.0: `blockDevices()` added raid group member (linux)
|
|
141
185
|
- Version 5.13.0: `networkConnections()` added process name (macOS)
|
|
142
186
|
- Version 5.12.0: `cpu()` added performance and efficiency cores
|
|
143
|
-
- Version 5.11.0: `networkInterfaces()` added default property and default
|
|
187
|
+
- Version 5.11.0: `networkInterfaces()` added default property and default
|
|
188
|
+
parameter
|
|
144
189
|
- Version 5.10.0: basic `android` support
|
|
145
190
|
- Version 5.9.0: `graphics()` added properties (macOS)
|
|
146
191
|
- Version 5.8.0: `disksIO()` added waitTime, waitPercent (linux)
|
|
@@ -150,29 +195,41 @@ si.cpu()
|
|
|
150
195
|
- Version 5.4.0: `dockerImages()` added
|
|
151
196
|
- Version 5.3.0: `osInfo()` added remoteSession (win only)
|
|
152
197
|
- Version 5.2.0: `wifiInterfaces()` and `wifiConnections()` added
|
|
153
|
-
- Version 5.1.0: `memLayout()` added ECC flag, `bios()` added language, features
|
|
154
|
-
|
|
198
|
+
- Version 5.1.0: `memLayout()` added ECC flag, `bios()` added language, features
|
|
199
|
+
(linux)
|
|
200
|
+
- Version 5.0.0: new version 5 - attention there are some breaking changes. See
|
|
201
|
+
[detailed version 5 changes here][changes5-url].
|
|
155
202
|
- ...
|
|
156
203
|
|
|
157
204
|
You can find all changes here: [detailed changelog][changelog-url]
|
|
158
205
|
|
|
159
206
|
## Core concept
|
|
160
207
|
|
|
161
|
-
[Node.js][nodejs-url] comes with some basic OS information, but I always wanted
|
|
208
|
+
[Node.js][nodejs-url] comes with some basic OS information, but I always wanted
|
|
209
|
+
a little more. So I came up to write this little library. This library is still
|
|
210
|
+
a work in progress. It is supposed to be used as a backend/server-side library
|
|
211
|
+
(it will definitely not work within a browser). It requires node.js version 4.0
|
|
212
|
+
and above.
|
|
162
213
|
|
|
163
|
-
I was able to test it on several Debian, Raspbian, Ubuntu distributions as well
|
|
214
|
+
I was able to test it on several Debian, Raspbian, Ubuntu distributions as well
|
|
215
|
+
as macOS (Mavericks, Yosemite, El Captain, Sierra, High Sierra, Mojave,
|
|
216
|
+
Catalina, Big Sur) and some Windows 7, Windows 8, Windows 10, FreeBSD, OpenBSD,
|
|
217
|
+
NetBSD and SunOS machines. Not all functions are supported on all operating
|
|
218
|
+
systems. Have a look at the function reference in the docs to get further
|
|
219
|
+
details.
|
|
164
220
|
|
|
165
221
|
If you have comments, suggestions & reports, please feel free to contact me!
|
|
166
222
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
223
|
+
I also created a nice little command line tool called [mmon][mmon-github-url]
|
|
224
|
+
(micro-monitor) for Linux and macOS, also available via
|
|
225
|
+
[github][mmon-github-url] and [npm][mmon-npm-url]
|
|
170
226
|
|
|
171
227
|
## Reference
|
|
172
228
|
|
|
173
229
|
### Function Reference and OS Support
|
|
174
230
|
|
|
175
|
-
Full function reference with examples can be found at
|
|
231
|
+
Full function reference with examples can be found at
|
|
232
|
+
[https://systeminformation.io][systeminformation-url].
|
|
176
233
|
|
|
177
234
|
#### 1. General
|
|
178
235
|
|
|
@@ -323,7 +380,8 @@ Full function reference with examples can be found at [https://systeminformation
|
|
|
323
380
|
| | manufacturer | X | | X | | | manufacturer |
|
|
324
381
|
| | serial | X | | X | | | battery serial |
|
|
325
382
|
|
|
326
|
-
|
|
383
|
+
- See known issues if you have a problem with macOS temperature or windows
|
|
384
|
+
temperature
|
|
327
385
|
|
|
328
386
|
#### 6. Graphics
|
|
329
387
|
|
|
@@ -800,7 +858,7 @@ Full function reference with examples can be found at [https://systeminformation
|
|
|
800
858
|
| | [0].rss | X | X | X | X | X | resident set size |
|
|
801
859
|
| | [0].vsz | X | X | X | X | X | virtual size in Kbytes |
|
|
802
860
|
| | [0].command | X | X | X | X | X | command and arguments |
|
|
803
|
-
| si.dockerVolumes(cb) | [{...}] | returns array of all docker volumes |
|
|
861
|
+
| si.dockerVolumes(cb) | [{...}] | returns array of all docker volumes | | | | | |
|
|
804
862
|
| | [0].name | X | X | X | X | X | volume name |
|
|
805
863
|
| | [0].driver | X | X | X | X | X | driver |
|
|
806
864
|
| | [0].labels | X | X | X | X | X | labels object |
|
|
@@ -857,74 +915,78 @@ Full function reference with examples can be found at [https://systeminformation
|
|
|
857
915
|
| Function | Result object | Linux | BSD | Mac | Win | Sun | Comments |
|
|
858
916
|
| ----------------------------------- | ------------- | ----- | --- | --- | --- | --- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
859
917
|
| si.getStaticData(cb) | {...} | X | X | X | X | X | all static data at once |
|
|
860
|
-
| si.getDynamicData(srv,iface,cb) | {...} | X | X | X | X | X | all dynamic data at once<br>Specify services and interfaces to monitor<br>Defaults to first external network interface<br>Pass "
|
|
861
|
-
| si.getAllData(srv,iface,cb) | {...} | X | X | X | X | X | all data at once<br>Specify services and interfaces to monitor<br>Defaults to first external network interface<br>Pass "
|
|
918
|
+
| si.getDynamicData(srv,iface,cb) | {...} | X | X | X | X | X | 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 |
|
|
919
|
+
| si.getAllData(srv,iface,cb) | {...} | X | X | X | X | X | 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 |
|
|
862
920
|
| si.get(valueObject,cb) | {...} | X | X | X | X | X | get partial system info data at once<br>In valueObject you can define<br>all values, you want to get back <br>(see documentation for details) |
|
|
863
921
|
| si.observe(valueObject,interval,cb) | - | X | X | X | X | X | Observe a defined value object<br>call callback on changes<br>polling interval in milliseconds |
|
|
864
922
|
|
|
865
923
|
### cb: Asynchronous Function Calls (callback)
|
|
866
924
|
|
|
867
|
-
Remember: all functions (except `version` and `time`) are implemented as
|
|
925
|
+
Remember: all functions (except `version` and `time`) are implemented as
|
|
926
|
+
asynchronous functions! There are now three ways to consume them:
|
|
868
927
|
|
|
869
928
|
**Callback Style**
|
|
870
929
|
|
|
871
930
|
```js
|
|
872
|
-
const si = require(
|
|
873
|
-
|
|
874
|
-
si.cpu(function(data) {
|
|
875
|
-
console.log(
|
|
876
|
-
console.log(
|
|
877
|
-
console.log(
|
|
878
|
-
console.log(
|
|
879
|
-
console.log(
|
|
880
|
-
console.log(
|
|
881
|
-
console.log(
|
|
882
|
-
})
|
|
931
|
+
const si = require("systeminformation");
|
|
932
|
+
|
|
933
|
+
si.cpu(function (data) {
|
|
934
|
+
console.log("CPU Information:");
|
|
935
|
+
console.log("- manufacturer: " + data.manufacturer);
|
|
936
|
+
console.log("- brand: " + data.brand);
|
|
937
|
+
console.log("- speed: " + data.speed);
|
|
938
|
+
console.log("- cores: " + data.cores);
|
|
939
|
+
console.log("- physical cores: " + data.physicalCores);
|
|
940
|
+
console.log("...");
|
|
941
|
+
});
|
|
883
942
|
```
|
|
884
943
|
|
|
885
944
|
### Promises
|
|
886
945
|
|
|
887
946
|
**Promises Style** is new in version 3.0.
|
|
888
947
|
|
|
889
|
-
When omitting callback parameter (cb), then you can use all function in a
|
|
948
|
+
When omitting callback parameter (cb), then you can use all function in a
|
|
949
|
+
promise oriented way. All functions (except of `version` and `time`) are
|
|
950
|
+
returning a promise, that you can consume:
|
|
890
951
|
|
|
891
952
|
```js
|
|
892
|
-
const si = require(
|
|
953
|
+
const si = require("systeminformation");
|
|
893
954
|
|
|
894
955
|
si.cpu()
|
|
895
|
-
.then(data => {
|
|
896
|
-
console.log(
|
|
897
|
-
console.log(
|
|
898
|
-
console.log(
|
|
899
|
-
console.log(
|
|
900
|
-
console.log(
|
|
901
|
-
console.log(
|
|
902
|
-
console.log(
|
|
956
|
+
.then((data) => {
|
|
957
|
+
console.log("CPU Information:");
|
|
958
|
+
console.log("- manufacturer: " + data.manufacturer);
|
|
959
|
+
console.log("- brand: " + data.brand);
|
|
960
|
+
console.log("- speed: " + data.speed);
|
|
961
|
+
console.log("- cores: " + data.cores);
|
|
962
|
+
console.log("- physical cores: " + data.physicalCores);
|
|
963
|
+
console.log("...");
|
|
903
964
|
})
|
|
904
|
-
.catch(error => console.error(error));
|
|
965
|
+
.catch((error) => console.error(error));
|
|
905
966
|
```
|
|
906
967
|
|
|
907
968
|
### Async / Await
|
|
908
969
|
|
|
909
970
|
**Using async / await** (available since node v7.6)
|
|
910
971
|
|
|
911
|
-
Since node v7.6 you can also use the `async` / `await` pattern. The above
|
|
972
|
+
Since node v7.6 you can also use the `async` / `await` pattern. The above
|
|
973
|
+
example would then look like this:
|
|
912
974
|
|
|
913
975
|
```js
|
|
914
|
-
const si = require(
|
|
976
|
+
const si = require("systeminformation");
|
|
915
977
|
|
|
916
978
|
async function cpuData() {
|
|
917
979
|
try {
|
|
918
980
|
const data = await si.cpu();
|
|
919
|
-
console.log(
|
|
920
|
-
console.log(
|
|
921
|
-
console.log(
|
|
922
|
-
console.log(
|
|
923
|
-
console.log(
|
|
924
|
-
console.log(
|
|
925
|
-
console.log(
|
|
981
|
+
console.log("CPU Information:");
|
|
982
|
+
console.log("- manufacturer: " + data.manufacturer);
|
|
983
|
+
console.log("- brand: " + data.brand);
|
|
984
|
+
console.log("- speed: " + data.speed);
|
|
985
|
+
console.log("- cores: " + data.cores);
|
|
986
|
+
console.log("- physical cores: " + data.physicalCores);
|
|
987
|
+
console.log("...");
|
|
926
988
|
} catch (e) {
|
|
927
|
-
console.log(e)
|
|
989
|
+
console.log(e);
|
|
928
990
|
}
|
|
929
991
|
}
|
|
930
992
|
```
|
|
@@ -933,9 +995,11 @@ async function cpuData() {
|
|
|
933
995
|
|
|
934
996
|
#### macOS - Temperature Sensor
|
|
935
997
|
|
|
936
|
-
To be able to measure temperature on macOS I created a little additional
|
|
937
|
-
in NPM with `optionalDependencies` I
|
|
938
|
-
|
|
998
|
+
To be able to measure temperature on macOS I created a little additional
|
|
999
|
+
package. Due to some difficulties in NPM with `optionalDependencies` I
|
|
1000
|
+
unfortunately was getting unexpected warnings on other platforms. So I decided
|
|
1001
|
+
to drop this optional dependency for macOS - so by default, you will not get
|
|
1002
|
+
correct values.
|
|
939
1003
|
|
|
940
1004
|
This additional package is now also supporting Apple Silicon M1/M2/M3 machines.
|
|
941
1005
|
|
|
@@ -946,58 +1010,72 @@ installation command:
|
|
|
946
1010
|
$ npm install osx-temperature-sensor --save
|
|
947
1011
|
```
|
|
948
1012
|
|
|
949
|
-
`systeminformation` will then detect this additional library and return the
|
|
1013
|
+
`systeminformation` will then detect this additional library and return the
|
|
1014
|
+
temperature when calling systeminformations standard function `cpuTemperature()`
|
|
950
1015
|
|
|
951
1016
|
#### Windows Temperature, Battery, ...
|
|
952
1017
|
|
|
953
|
-
`get-WmiObject` - which is used to determine temperature and battery sometimes
|
|
954
|
-
privileges. So if you do not get any values, try to
|
|
955
|
-
privileges. If you still do not get any values, your
|
|
956
|
-
In some cases we also discovered that
|
|
1018
|
+
`get-WmiObject` - which is used to determine temperature and battery sometimes
|
|
1019
|
+
needs to be run with admin privileges. So if you do not get any values, try to
|
|
1020
|
+
run it again with according privileges. If you still do not get any values, your
|
|
1021
|
+
system might not support this feature. In some cases we also discovered that
|
|
1022
|
+
`get-WmiObject` returned incorrect temperature values.
|
|
957
1023
|
|
|
958
1024
|
#### Linux Temperature
|
|
959
1025
|
|
|
960
|
-
In some cases you need to install the Linux `sensors` package to be able to
|
|
961
|
-
e.g. on DEBIAN based systems by running
|
|
1026
|
+
In some cases you need to install the Linux `sensors` package to be able to
|
|
1027
|
+
measure temperature e.g. on DEBIAN based systems by running
|
|
1028
|
+
`sudo apt-get install lm-sensors`
|
|
962
1029
|
|
|
963
1030
|
#### Linux S.M.A.R.T. Status
|
|
964
1031
|
|
|
965
|
-
To be able to detect S.M.A.R.T. status on Linux you need to install
|
|
1032
|
+
To be able to detect S.M.A.R.T. status on Linux you need to install
|
|
1033
|
+
`smartmontools`. On DEBIAN based Linux distributions you can install it by
|
|
1034
|
+
running `sudo apt-get install smartmontools`
|
|
966
1035
|
|
|
967
1036
|
#### Windows Encoding Issues
|
|
968
|
-
|
|
1037
|
+
|
|
1038
|
+
I now reimplemented all windows functions to avoid encoding problems (special
|
|
1039
|
+
chacarters). And as Windows 11 now dropped `wmic` support, I had to move
|
|
1040
|
+
completely to `powershell`. Be sure that powershell version 5+ is installed on
|
|
1041
|
+
your machine. On older Windows versions (7, 8) you might still see encoding
|
|
1042
|
+
problems due to the old powershell version.
|
|
1043
|
+
|
|
969
1044
|
## *: Additional Notes
|
|
970
1045
|
|
|
971
|
-
In `fsStats()`, `disksIO()` and `networkStats()` the results / sec. values
|
|
972
|
-
|
|
973
|
-
|
|
1046
|
+
In `fsStats()`, `disksIO()` and `networkStats()` the results / sec. values
|
|
1047
|
+
(rx_sec, IOPS, ...) are calculated correctly beginning with the second call of
|
|
1048
|
+
the function. It is determined by calculating the difference of transferred
|
|
1049
|
+
bytes / IOs divided by the time between two calls of the function.
|
|
974
1050
|
|
|
975
|
-
The first time you are calling one of these functions, you will get `null` for
|
|
1051
|
+
The first time you are calling one of these functions, you will get `null` for
|
|
1052
|
+
transfer rates. The second time, you should then get statistics based on the
|
|
1053
|
+
time between the two calls ...
|
|
976
1054
|
|
|
977
|
-
So basically, if you e.g. need a value for network stats every second, your code
|
|
1055
|
+
So basically, if you e.g. need a value for network stats every second, your code
|
|
1056
|
+
should look like this:
|
|
978
1057
|
|
|
979
1058
|
```js
|
|
980
|
-
const si = require(
|
|
1059
|
+
const si = require("systeminformation");
|
|
981
1060
|
|
|
982
|
-
setInterval(function() {
|
|
983
|
-
si.networkStats().then(data => {
|
|
1061
|
+
setInterval(function () {
|
|
1062
|
+
si.networkStats().then((data) => {
|
|
984
1063
|
console.log(data);
|
|
985
|
-
})
|
|
986
|
-
}, 1000)
|
|
1064
|
+
});
|
|
1065
|
+
}, 1000);
|
|
987
1066
|
```
|
|
988
1067
|
|
|
989
1068
|
Beginning with the second call, you get network transfer values per second.
|
|
990
1069
|
|
|
991
1070
|
## Finding new issues
|
|
992
1071
|
|
|
993
|
-
I am happy to discuss any comments and suggestions. Please feel free to contact
|
|
994
|
-
|
|
1072
|
+
I am happy to discuss any comments and suggestions. Please feel free to contact
|
|
1073
|
+
me if you see any possibility of improvement!
|
|
995
1074
|
|
|
996
1075
|
## Comments
|
|
997
1076
|
|
|
998
1077
|
If you have ideas or comments, please do not hesitate to contact me.
|
|
999
1078
|
|
|
1000
|
-
|
|
1001
1079
|
Happy monitoring!
|
|
1002
1080
|
|
|
1003
1081
|
Sincerely,
|
|
@@ -1006,7 +1084,8 @@ Sebastian Hildebrandt, [+innovations](http://www.plus-innovations.com)
|
|
|
1006
1084
|
|
|
1007
1085
|
## Credits
|
|
1008
1086
|
|
|
1009
|
-
Written by Sebastian Hildebrandt
|
|
1087
|
+
Written by Sebastian Hildebrandt
|
|
1088
|
+
[sebhildebrandt](https://github.com/sebhildebrandt)
|
|
1010
1089
|
|
|
1011
1090
|
#### Contributors
|
|
1012
1091
|
|
|
@@ -1028,66 +1107,70 @@ Written by Sebastian Hildebrandt [sebhildebrandt](https://github.com/sebhildebra
|
|
|
1028
1107
|
- Ricardo Polo [ricardopolo](https://github.com/ricardopolo)
|
|
1029
1108
|
- Miłosz Dźwigała [mily20001](https://github.com/mily20001)
|
|
1030
1109
|
- cconley717 [cconley717](https://github.com/cconley717)
|
|
1031
|
-
- Maria Camila Cubides
|
|
1110
|
+
- Maria Camila Cubides
|
|
1111
|
+
[MariaCamilaCubides](https://github.com/MariaCamilaCubides)
|
|
1032
1112
|
- Aleksander Krasnicki [plakak](https://github.com/plakak)
|
|
1033
1113
|
- Alexis Tyler [OmgImAlexis](https://github.com/OmgImAlexis)
|
|
1034
1114
|
- Simon Smith [si458](https://github.com/si458)
|
|
1035
1115
|
|
|
1036
1116
|
OSX Temperature: credits here are going to:
|
|
1037
1117
|
|
|
1038
|
-
- Frank Stock [pcafstockf](https://github.com/pcafstockf) - for his work on
|
|
1118
|
+
- Frank Stock [pcafstockf](https://github.com/pcafstockf) - for his work on
|
|
1119
|
+
[smc-code][smc-code-url]
|
|
1039
1120
|
|
|
1040
1121
|
## Copyright Information
|
|
1041
1122
|
|
|
1042
|
-
Linux is a registered trademark of Linus Torvalds. Apple, macOS, OS X are
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1123
|
+
Linux is a registered trademark of Linus Torvalds. Apple, macOS, OS X are
|
|
1124
|
+
registered trademarks of Apple Inc., Windows is a registered trademark of
|
|
1125
|
+
Microsoft Corporation. Node.js is a trademark of Joyent Inc., Intel is a
|
|
1126
|
+
trademark of Intel Corporation, AMD is a trademark of Advanced Micro Devices
|
|
1127
|
+
Inc., Raspberry Pi is a trademark of the Raspberry Pi Foundation, Debian is a
|
|
1128
|
+
trademark owned by Software in the Public Interest, Inc., Ubuntu is a trademark
|
|
1129
|
+
of Canonical Ltd., FreeBSD is a registered trademark of The FreeBSD Foundation,
|
|
1130
|
+
NetBSD is a registered trademark of The NetBSD Foundation, Docker is a trademark
|
|
1131
|
+
of Docker, Inc., Sun, Solaris, OpenSolaris and registered trademarks of Sun
|
|
1132
|
+
Microsystems, VMware is a trademark of VMware Inc, Virtual Box is a trademark of
|
|
1133
|
+
Oracle Corporation, Xen is a registered trademark of Xen Project, QEMU is a
|
|
1134
|
+
trademark of Fabrice Bellard, bochs is a trademark of The Bochs Project, USB and
|
|
1135
|
+
USB Logo are trademarks of USB Implementation Forum, Bluetooth and Bluetooth
|
|
1136
|
+
Logo are trademarks of Bluetooth SIG, Android is a trademark of Google LLC,
|
|
1137
|
+
Parallels is a trademarks of Parallels International GmbH.
|
|
1053
1138
|
|
|
1054
1139
|
All other trademarks are the property of their respective owners.
|
|
1055
1140
|
|
|
1056
1141
|
## License [![MIT license][license-img]][license-url]
|
|
1057
1142
|
|
|
1058
|
-
>The [`MIT`][license-url] License (MIT)
|
|
1143
|
+
> The [`MIT`][license-url] License (MIT)
|
|
1059
1144
|
>
|
|
1060
|
-
>Copyright © 2014-2024 Sebastian Hildebrandt,
|
|
1145
|
+
> Copyright © 2014-2024 Sebastian Hildebrandt,
|
|
1146
|
+
> [+innovations](http://www.plus-innovations.com).
|
|
1061
1147
|
>
|
|
1062
|
-
>Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
1063
|
-
>of this software and associated documentation files (the "Software"), to deal
|
|
1064
|
-
>in the Software without restriction, including without limitation the rights
|
|
1065
|
-
>to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
1066
|
-
>copies of the Software, and to permit persons to whom the Software is
|
|
1067
|
-
>furnished to do so, subject to the following conditions:
|
|
1148
|
+
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
1149
|
+
> of this software and associated documentation files (the "Software"), to deal
|
|
1150
|
+
> in the Software without restriction, including without limitation the rights
|
|
1151
|
+
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
1152
|
+
> copies of the Software, and to permit persons to whom the Software is
|
|
1153
|
+
> furnished to do so, subject to the following conditions:
|
|
1068
1154
|
>
|
|
1069
|
-
>The above copyright notice and this permission notice shall be included in
|
|
1070
|
-
>
|
|
1155
|
+
> The above copyright notice and this permission notice shall be included in all
|
|
1156
|
+
> copies or substantial portions of the Software.
|
|
1071
1157
|
>
|
|
1072
|
-
>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
1073
|
-
>IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
1074
|
-
>FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
1075
|
-
>AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
1076
|
-
>LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
1077
|
-
>OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
1078
|
-
>
|
|
1158
|
+
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
1159
|
+
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
1160
|
+
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
1161
|
+
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
1162
|
+
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
1163
|
+
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
1164
|
+
> SOFTWARE.
|
|
1079
1165
|
>
|
|
1080
|
-
>Further details see [LICENSE](LICENSE) file.
|
|
1081
|
-
|
|
1166
|
+
> Further details see [LICENSE](LICENSE) file.
|
|
1082
1167
|
|
|
1083
1168
|
[npm-image]: https://img.shields.io/npm/v/systeminformation.svg?style=flat-square
|
|
1084
1169
|
[npm-url]: https://npmjs.org/package/systeminformation
|
|
1085
1170
|
[downloads-image]: https://img.shields.io/npm/dm/systeminformation.svg?style=flat-square
|
|
1086
1171
|
[downloads-url]: https://npmjs.org/package/systeminformation
|
|
1087
|
-
|
|
1088
1172
|
[sponsor-badge]: https://img.shields.io/badge/Support-Buy%20me%20a%20coffee-brightgreen?style=flat-square
|
|
1089
1173
|
[sponsor-url]: https://www.buymeacoffee.com/systeminfo
|
|
1090
|
-
|
|
1091
1174
|
[license-url]: https://github.com/sebhildebrandt/systeminformation/blob/master/LICENSE
|
|
1092
1175
|
[license-img]: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square
|
|
1093
1176
|
[npmjs-license]: https://img.shields.io/npm/l/systeminformation.svg?style=flat-square
|
|
@@ -1095,22 +1178,16 @@ All other trademarks are the property of their respective owners.
|
|
|
1095
1178
|
[changes5-url]: https://systeminformation.io/changes.html
|
|
1096
1179
|
[caretaker-url]: https://github.com/sebhildebrandt
|
|
1097
1180
|
[caretaker-image]: https://img.shields.io/badge/caretaker-sebhildebrandt-blue.svg?style=flat-square
|
|
1098
|
-
|
|
1099
1181
|
[nodejs-url]: https://nodejs.org/en/
|
|
1100
1182
|
[docker-url]: https://www.docker.com/
|
|
1101
1183
|
[systeminformation-url]: https://systeminformation.io
|
|
1102
|
-
|
|
1103
1184
|
[daviddm-img]: https://img.shields.io/david/sebhildebrandt/systeminformation.svg?style=flat-square
|
|
1104
1185
|
[daviddm-url]: https://david-dm.org/sebhildebrandt/systeminformation
|
|
1105
|
-
|
|
1106
1186
|
[issues-img]: https://img.shields.io/github/issues/sebhildebrandt/systeminformation.svg?style=flat-square
|
|
1107
1187
|
[issues-url]: https://github.com/sebhildebrandt/systeminformation/issues
|
|
1108
1188
|
[closed-issues-img]: https://img.shields.io/github/issues-closed-raw/sebhildebrandt/systeminformation.svg?style=flat-square&color=brightgreen
|
|
1109
1189
|
[closed-issues-url]: https://github.com/sebhildebrandt/systeminformation/issues?q=is%3Aissue+is%3Aclosed
|
|
1110
|
-
|
|
1111
1190
|
[new-issue]: https://github.com/sebhildebrandt/systeminformation/issues/new/choose
|
|
1112
|
-
|
|
1113
1191
|
[mmon-npm-url]: https://npmjs.org/package/mmon
|
|
1114
1192
|
[mmon-github-url]: https://github.com/sebhildebrandt/mmon
|
|
1115
|
-
|
|
1116
1193
|
[smc-code-url]: https://github.com/pcafstockf/smc-reader
|
package/lib/system.js
CHANGED
|
@@ -688,13 +688,13 @@ function chassis(callback) {
|
|
|
688
688
|
exec('ioreg -c IOPlatformExpertDevice -d 2', function (error, stdout) {
|
|
689
689
|
if (!error) {
|
|
690
690
|
let lines = stdout.toString().replace(/[<>"]/g, '').split('\n');
|
|
691
|
-
const model = util.getValue(lines, 'model', '=', true);
|
|
692
|
-
const modelParts = util.splitByNumber(model);
|
|
693
|
-
const version = util.getValue(lines, 'version', '=', true);
|
|
691
|
+
const model = util.getAppleModel(util.getValue(lines, 'model', '=', true));
|
|
692
|
+
// const modelParts = util.splitByNumber(model);
|
|
693
|
+
// const version = util.getValue(lines, 'version', '=', true);
|
|
694
694
|
result.manufacturer = util.getValue(lines, 'manufacturer', '=', true);
|
|
695
|
-
result.model =
|
|
696
|
-
result.type = macOsChassisType(
|
|
697
|
-
result.version = version
|
|
695
|
+
result.model = model.key;
|
|
696
|
+
result.type = macOsChassisType(model.model);
|
|
697
|
+
result.version = model.version;
|
|
698
698
|
result.serial = util.getValue(lines, 'ioplatformserialnumber', '=', true);
|
|
699
699
|
result.assetTag = util.getValue(lines, 'board-id', '=', true) || util.getValue(lines, 'target-type', '=', true);
|
|
700
700
|
result.sku = util.getValue(lines, 'target-sub-type', '=', true);
|
package/lib/users.js
CHANGED
|
@@ -120,7 +120,7 @@ function parseUsersDarwin(lines) {
|
|
|
120
120
|
result_w.command = l.slice(5, 1000).join(' ');
|
|
121
121
|
// find corresponding 'who' line
|
|
122
122
|
who_line = result_who.filter(function (obj) {
|
|
123
|
-
return (obj.user === result_w.user && (obj.tty.substring(3, 1000) === result_w.tty || obj.tty === result_w.tty));
|
|
123
|
+
return (obj.user.substring(0, 10) === result_w.user.substring(0, 10) && (obj.tty.substring(3, 1000) === result_w.tty || obj.tty === result_w.tty));
|
|
124
124
|
});
|
|
125
125
|
if (who_line.length === 1) {
|
|
126
126
|
result.push({
|