Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/quantumsheep/node-icmp
Internet Control Message Protocol in Node
https://github.com/quantumsheep/node-icmp
Last synced: 12 days ago
JSON representation
Internet Control Message Protocol in Node
- Host: GitHub
- URL: https://github.com/quantumsheep/node-icmp
- Owner: quantumsheep
- Created: 2018-09-05T15:42:23.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-06-16T16:42:04.000Z (5 months ago)
- Last Synced: 2024-10-27T09:04:43.541Z (16 days ago)
- Language: JavaScript
- Size: 85 KB
- Stars: 35
- Watchers: 2
- Forks: 9
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Internet Control Message Protocol in Node
[![npm](https://img.shields.io/npm/v/icmp)](https://www.npmjs.com/package/icmp)
[![Twitter: qtmsheep](https://img.shields.io/twitter/follow/qtmsheep.svg?style=social)](https://twitter.com/qtmsheep)Node wrapper for the ICMP protocol.
# Install
```sh
npm install icmp
```On Windows, Windows Build Tools are required: `npm install -g windows-build-tools`
# Usage
```js
const ICMP = require('icmp')
```
or
```ts
import * as ICMP from 'icmp';
```## Properties
### ICMP.host: string
The requested HOST (can be an IP)### ICMP.ip: string
The requested IP, when host parameter is given to the constructor, the DNS will be resolved to get this IP adress### ICMP.open: boolean
This property will be `true` or `false`, depending on the ping response### ICMP.type: string
ICMP response type, will be one from this array:
```js
['REPLY', 'NA', 'NA', 'DESTINATION_UNREACHABLE', 'SOURCE_QUENCH', 'REDIRECT']
```
### ICMP.code: string
ICMP response code, will be one from this array:
```js
['NET', 'HOST', 'PROTOCOL', 'PORT', 'FRAGMENTATION', 'ROUTE_FAILED', 'NET_UNKNOWN', 'HOST_UNKNOWN', 'HOST_ISOLATED', 'NET_PROHIBITED', 'HOST_PROHIBITED', 'NET_UNREACHABLE', 'HOST_UNREACHABLE', 'COMM_PROHIBITED', 'HOST_PRECEDENCE', 'PRECEDENCE_CUTOFF', 'NETWORK', 'HOST', 'SERVICE_NETWORK', 'HOST_NETWORK']
```## Methods
Note: default `timeout` of each methods is `5000ms`.### (static) ICMP.ping(host: string, timeout?: number): Promise
Send a ping to a specific host. Returns a Promise resolving an ICMP instance and rejecting an Error.### ICMP.ping(timeout?: number): Promise
Send a ping to the defined ICMP instance's host. Returns a Promise, resolving nothing and rejecting an Error.### (static) ICMP.send(host: string, data?: string)
Send data to a specific host through ICMP. Returns a Promise resolving an ICMP instance and rejecting an Error.```js
icmp.send('10.43.65.9', "Hey, I'm sending a message!")
.then(obj => {
console.log(obj.open ? 'Done' : 'Failed')
})
.catch(err => console.log(err));
```### ICMP.send(data?: string, timeout?: number)
Send data to the defined ICMP instance's host. Returns a Promise resolving nothing and rejecting an Error.### (static) ICMP.listen(cb: (buffer, source) => void)
Listen to incomming ICMP requests.### ICMP.listen(cb: (buffer, source) => void)
Listen to incomming ICMP requests.### ICMP.close()
Close the raw socket stream. Can be used to stop a request.# Author
👤 **Nathanael Demacon**
* Twitter: [@qtmsheep](https://twitter.com/qtmsheep)
* Github: [@quantumsheep](https://github.com/quantumsheep)# Show your support
Give a ⭐️ if this project helped you!