1.0.6 • Published 4 years ago
digitronic-bootp v1.0.6
digitronic-bootp
Implementation of the bootp protocol version of digitronic to change ip-addresses on DigiWEB devices
usage
on('device', (device)=>void)
you can find devices in the network with the device
event.
const bootp = new DigitronicBootpServer();
bootp.on('device', (device)=>{
console.log(device);
})
await bootp.open();
findDevice(mac, networkInterface?, tries=3)
find a device with a specific MAC-address on the network. The returned promise will be rejected if we cannot find the device on the network.
- mac -> mac address of the device that should be found
- networkInterface -> network interface of the device where the device is connected to. If this parameter is not passed we're searching on all interfaces
- tries -> since we're communicating via udp broadcast there's high chance to loose some packets (especially on big networks). So the function retries the process with the given number before it rejects
const bootp = new DigitronicBootpServer();
await bootp.open();
const foundDevice = await bootp.findDevice('001122334455');
changeIp(mac, ip)
changes the IP of the device.
- mac -> mac address of the device that should be found
- ip -> new ip address of the device as number
- tries -> number of unsuccessful tries before the function rejects
- networkInterface -> network interface of the device where the device is connected to. If this parameter is not passed we're using on all interfaces
const bootp = new DigitronicBootpServer();
await bootp.open();
const wantedIp = 0xC0A80203; //192.168.2.3
await bootp.setIp('001122334455', wantedIp);
find a list of devices that updates automatically
Helper class to get a list of all available devices on the network
const deviceService = new DeviceService();
deviceService.on('change', (devices: Device[]) => {
console.log(devices);
});
deviceService.on('device-updated', (device:Device, devices: Device[]) => {
console.log(device, devices);
});
deviceService.on('device-added', (device:Device, devices: Device[]) => {
console.log(device, devices);
});
await deviceService.open();