New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

node-udp-forwarder

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-udp-forwarder

A simple UDP forwarder

  • 0.2.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1
decreased by-50%
Maintainers
1
Weekly downloads
 
Created
Source

node-udp-forwarder Build Status Codacy Badge Maintainability

A simple UDP datagram forwarder / proxy. Akin to socat but multi-platform, extensible, and hackable. Provides a command line interface (CLI) and an API.

Installation

Install using npm

[sudo] npm install [-g] node-udp-forwarder

Forwarding using CLI

Here's a full command line example, but only destination port and address are really required

udpforwarder \
--destinationPort 9903 --destinationAddress 10.211.55.3 \
--protocol udp4 --port 9903 --address 10.211.55.2 \
--multicastAddress 225.0.0.1 \
--forwarderPort 0 --forwarderAddress 10.211.55.2

Listens for source datagrams on port 9903 of interface with IP address 10.211.55.2, and forwards them to destination port 9903 at address 10.211.55.3. Destination address can be a multicast group such as 225.0.0.1.

The source port and address of forwarded datagrams are 0 (any random port number) and 10.211.55.2, respectively. Datagrams received on the random port number are sent to the last known sender of the source datagrams above.

Multicast datagrams arriving at port 9903, of interface 10.211.55.2 on Windows, are also forwarded. Linux and OS X require that the UDP socket be bound to all interfaces, address 0.0.0.0, to be able to listen to multicast.

IP version 4 is chosen here using udp4 but IP version 6 may also be specified using udp6.

Forwarding using API

const udpf = require("node-udp-forwarder");
/**
 * messageAdapter is invoked once per received message and should return an array of transformed messages.
 * it can change the message, omit the message, create new messages, or any combination thereof
 *
 * @param msg the received message buffer
 * @param rInfo the message remote source info 
 * @returns {[*]} an array of string or byte buffers to be forwarded to the destination
 */
function messageAdapter (msg, rInfo) {
  const newMessage = `${msg.toString()}-transformed`;
  return [msg, newMessage];
}


const options = {
    protocol: 'udp4',
    port: 9903,
    address: '10.211.55.2',
    multicastAddress: '225.0.0.1',
    forwarderPort: 0,
    forwarderAddress: '10.211.55.2',
    messageAdapter: messageAdapter, // optional
    created: created
};

var f = udpf.create(4007, '10.211.55.3', options);

function created() {
    console.log(`listening on ${f.address}:${f.port}`);
    console.log(`forwarding from ${f.forwarderAddress}:${f.forwarderPort}`);
}

// call f.end() when done

FAQs

Package last updated on 04 Oct 2021

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc