Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/insomniacslk/dhcp
DHCPv6 and DHCPv4 packet library, client and server written in Go
https://github.com/insomniacslk/dhcp
dhcp dhcp-client dhcp-server dhcpd dhcpd-server dhcpv4 dhcpv6 dhcpv6-packet dhcpv6-server go golang
Last synced: about 6 hours ago
JSON representation
DHCPv6 and DHCPv4 packet library, client and server written in Go
- Host: GitHub
- URL: https://github.com/insomniacslk/dhcp
- Owner: insomniacslk
- License: bsd-3-clause
- Created: 2017-11-29T21:24:15.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-05-24T10:46:56.000Z (7 months ago)
- Last Synced: 2024-05-28T11:11:44.419Z (7 months ago)
- Topics: dhcp, dhcp-client, dhcp-server, dhcpd, dhcpd-server, dhcpv4, dhcpv6, dhcpv6-packet, dhcpv6-server, go, golang
- Language: Go
- Homepage:
- Size: 2.46 MB
- Stars: 674
- Watchers: 18
- Forks: 162
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- my-awesome - insomniacslk/dhcp - client,dhcp-server,dhcpd,dhcpd-server,dhcpv4,dhcpv6,dhcpv6-packet,dhcpv6-server,go,golang pushed_at:2024-12 star:0.7k fork:0.2k DHCPv6 and DHCPv4 packet library, client and server written in Go (Go)
README
# dhcp
[![Build Status](https://img.shields.io/github/actions/workflow/status/insomniacslk/dhcp/tests.yml?branch=master)](https://github.com/insomniacslk/dhcp/actions?query=branch%3Amaster)
[![GoDoc](https://godoc.org/github.com/insomniacslk/dhcp?status.svg)](https://godoc.org/github.com/insomniacslk/dhcp)
[![codecov](https://codecov.io/gh/insomniacslk/dhcp/branch/master/graph/badge.svg)](https://codecov.io/gh/insomniacslk/dhcp)
[![Go Report Card](https://goreportcard.com/badge/github.com/insomniacslk/dhcp)](https://goreportcard.com/report/github.com/insomniacslk/dhcp)DHCPv4 and DHCPv6 decoding/encoding library with client and server code, written in Go.
# How to get the library
The library is split into several parts:
* `dhcpv6`: implementation of DHCPv6 packet, client and server
* `dhcpv4`: implementation of DHCPv4 packet, client and server
* `netboot`: network booting wrappers on top of `dhcpv6` and `dhcpv4`
* `iana`: several IANA constants, and helpers used by `dhcpv6` and `dhcpv4`
* `rfc1035label`: simple implementation of RFC1035 labels, used by `dhcpv6` and
`dhcpv4`
* `interfaces`, a thin layer of wrappers around network interfacesYou will probably only need `dhcpv6` and/or `dhcpv4` explicitly. The rest is
pulled in automatically if necessary.So, to get `dhcpv6` and `dhcpv4` just run:
```
go get -u github.com/insomniacslk/dhcp/dhcpv{4,6}
```# Examples
The sections below will illustrate how to use the `dhcpv6` and `dhcpv4`
packages.* [dhcpv6 client](examples/client6/)
* [dhcpv6 server](examples/server6/)
* [dhcpv6 packet crafting](examples/packetcrafting6)
* TODO dhcpv4 client
* TODO dhcpv4 server
* TODO dhcpv4 packet craftingSee more example code at https://github.com/insomniacslk/exdhcp
# Public projects that use it
* Facebook's DHCP load balancer, `dhcplb`, https://github.com/facebookincubator/dhcplb
* Systemboot, a LinuxBoot distribution that runs as system firmware, https://github.com/systemboot/systemboot
* Router7, a pure-Go router implementation for fiber7 connections, https://github.com/rtr7/router7
* Beats from ElasticSearch, https://github.com/elastic/beats
* Bender from Pinterest, a library for load-testing, https://github.com/pinterest/bender
* FBender from Facebook, a tool for load-testing based on Bender, https://github.com/facebookincubator/fbender
* CoreDHCP, a fast, multithreaded, modular and extensible DHCP server, https://github.com/coredhcp/coredhcp
* u-root, an embeddable root file system, https://github.com/u-root/u-root
* Talos: a modern OS for Kubernetes, https://github.com/talos-systems/talos
* Smee: the network boot service in the Tinkerbell stack, https://github.com/tinkerbell/smee