Interface Management for Node.js
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
IFE.cc
IFEheader.h
LICENSE-CDDL
LICENSE-MIT
README.md
arpcache-ctlnet.cc
arpcache-dlpi.cc
arpcache-none.cc
arpcache-proc.cc
binding.gyp
ife-bpf.cc
ife-dlpi.cc
ife-icmp-support.cc
ife-icmp-support.h
ife-sockpacket.cc
ife-win32.cc
ife.h
index.js
package.json
wscript

README.md

IFE

IFE is (network) interface management for Node.js. It works on Linux, Illumos, FreeBSD, MacOS X.

var IFEdriver = require('ife'),
    ife = new IFEdriver();

API

var success =
ife.up({ name:      "eth0",
         ip:        "10.10.10.11",
         broadcast: "10.10.10.255",
         netmask:   "255.255.255.0",
         network:   "10.10.10.0"
});

ife.up({ name:      "e1000g0",
         ip:        "2607:f8b0:4002:c09::64',
         prefixlen: 64
});

Brings up the specified address on the interface "eth0".

var success =
ife.down('10.10.10.11');

Brings down the logical interface with the IP address 10.10.10.11.

var ifaces = ife.list()

List all the broadcast-capable interfaces on the server.

var ip2mac = ife.arpcache();

Returns an hash of IPs and their corresponding MAC addresses in the local server's ARP table.

var count = 2,
    do_ping = true;

var sent =
ife.gratarp({ name: "eth0", local_ip: "10.10.10.11",
              remote_ip: "10.10.10.1" }, count);

var sent =
ife.gratarp({ name: "eth0", local_ip: "10.10.10.11",
              remote_ip: "10.10.10.1", remote_mac: "7c:d1:c3:dc:dd:f7" },
            count, do_ping);

Send (two) gratuitous ARP responses to 10.10.10.1 advertising our 10.10.10.11. Second, send the same, but explicitly to the target MAC address. By specifying a MAC address, we may also ping, which we elect to do.