
Security News
TypeScript is Porting Its Compiler to Go for 10x Faster Builds
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
node-netstat
Advanced tools
A library utility for reading netstat data. It's been tested on Ubuntu 14.04/16.04, Windows 7 and OS X Yosemite.
node-netstat can be installed via npm:
$ npm install node-netstat
var netstat = require('node-netstat');
netstat({
filter: {
pid: 4123,
protocol: 'tcp'
},
limit: 5
}, function (data) {
// a single line of data read from netstat
});
void netstat(object options, function handler)
Executes a netstat query with any options
supplied and executes handler
for each line result read from netstat.
The handler
signature is void|boolean function(object parsedItem)
where parsedItem
represents a single result from netstat. A typical parsedItem
will look like this:
var item = {
protocol: String, // 'tcp', 'udp', or 'tcp6'
local: {
port: Number,
address: String // null if a loopback address
},
remote: {
port: Number,
address: String // null if a loopback address
},
state: '',
pid: Number // 0 if it could not be found/parsed
};
If the return value is false
, processing will stop and any remaining results will not be parsed.
os.platform()
.handler
won't get called.object netstat.commands
A hash map with command pattern objects:
{
cmd: 'netstat',
args: ['-lmnop', '--tcp']
};
The keys in netstat.commands
correspond to the standard os.platform()
return values ('linux', 'win32').
object netstat.parsers
A hash map of line parse handlers with keys corresponding to os.platform()
values.
Line parsers have the following signature:
function (line, callback) {
// parse line contents
callback(parsedItem);
}
line
is a raw line of output read from netstat. callback
is a function and accepts a single argument: the parsed data object.
object netstat.parserFactories
A hash map of the factory functions used to generate the default parsers with keys corresponding to os.platform()
values. Some factories include options that may be customized for specific use cases.
processName
in results. Default: falseconst netstat = require('node-netstat');
netstat.parsers.linux = netstat.parserFactories.linux({
parseName: true,
});
netstat({}, item => console.log(item));
/* output:
{ protocol: 'tcp',
local: { port: 631, address: '127.0.0.1' },
remote: { port: NaN, address: null },
state: 'LISTEN',
pid: 0,
processName: '' }
{ protocol: 'tcp',
local: { port: 1339, address: '127.0.0.1' },
remote: { port: NaN, address: null },
state: 'LISTEN',
pid: 10474,
processName: 'node' }
*/
object netstat.filters
A hash map of closure factories to handle logic for certain options. See source for more details on implementations for specific filters.
object netstat.utils
An object with several useful functions for implementing custom parsers.
string netstat.version
The version of node-netstat
async
netstat externallyIf the watch
option is set, the line handler can never be called. To deal with this scenario, a handler is returned and can be called to cancel netstat watching externally.
const impossibleFilter = {...};
let handler = netstat(impossibleFilter, item => console.log(item));
...
// Some time later we need to finish our script,
// we cancel netsat so
handler.cancel();
Any subsequent call to handler.cancel()
takes no effect.
node-netstat is highly extensible via the filters
, parsers
, and commands
properties.
If you see a bug or have a suggestion, feel free to open an issue here.
PR's welcome! There are no strict style guidelines, just follow best practices and try to keep with the general look & feel of the code present. All submissions must pass jslint and have a test to verify (if applicable).
Unlicense. This is a Public Domain work.
"Make art not law" -Nina Paley
FAQs
programmatic netstat utility
The npm package node-netstat receives a total of 4,494 weekly downloads. As such, node-netstat popularity was classified as popular.
We found that node-netstat demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
Research
Security News
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
Security News
Socket CEO Feross Aboukhadijeh discusses the open web, open source security, and how Socket tackles software supply chain attacks on The Pair Program podcast.