# digitronic-bootp

> implementing the bootp protocol version of digitronic to change ip-adresses on DigiWEB devices

Latest version **1.0.6** (published 2020-10-30) · MIT license · 0 weekly downloads

## Install

```sh
npm install digitronic-bootp
pnpm add digitronic-bootp
yarn add digitronic-bootp
bun add digitronic-bootp
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.6 |
| Published | 2020-10-30 |
| First published | 2020-09-15 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=10 |
| Dependencies | 3 |
| Unpacked size | 1010.9 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| Author | emcellsoft |
| Maintainers | emcell |
| Keywords | digitronic, digiweb, node.js, typescript |

## Links

- npm: https://www.npmjs.com/package/digitronic-bootp
- Repository: https://github.com/YOUR_GITHUB_USER_NAME/digitronic-bootp
- npm.io page: https://npm.io/package/digitronic-bootp

## Dependencies (3)

- [ip](https://npm.io/package/ip.md) ^1.1.5
- [macaddr](https://npm.io/package/macaddr.md) ^0.0.1
- [@bitauth/libauth](https://npm.io/package/@bitauth/libauth.md) ^1.17.1

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 1.0.6 (latest) — 2020-10-30
- 1.0.5 — 2020-10-30
- 1.0.4 — 2020-10-30
- 1.0.3 — 2020-10-26
- 1.0.2 — 2020-10-23
- 1.0.1 — 2020-10-20
- 1.0.0 — 2020-09-15

## README

# 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. 

```typescript
    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

```typescript
    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



```typescript
    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

```typescript
  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();
```

---
_Source: https://npm.io/package/digitronic-bootp · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
