insomniacslk/dhcp

DHCPv6 and DHCPv4 packet library, client and server written in Go

Go

844

880 commits

updated Sep 1, 2026

See the code

README

dhcp

Build Status GoDoc codecov Go Report Card

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 interfaces

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

See more example code at https://github.com/insomniacslk/exdhcp

Public projects that use it

dhcp
dhcp-client
dhcpd
dhcpd-server
dhcp-server
dhcpv4
dhcpv6
dhcpv6-packet
dhcpv6-server
go
golang

insomniacslk/dhcp

DHCPv6 and DHCPv4 packet library, client and server written in Go

Go

844

880 commits

updated Sep 1, 2026

See the code

README

dhcp

Build Status GoDoc codecov Go Report Card

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 interfaces

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

See more example code at https://github.com/insomniacslk/exdhcp

Public projects that use it

dhcp
dhcp-client
dhcpd
dhcpd-server
dhcp-server
dhcpv4
dhcpv6
dhcpv6-packet
dhcpv6-server
go
golang

Significant stargazers

Michael Crosby

1,659 followers · starred Aug 2021

Wim

471 followers · starred Nov 2021

Anatol Pomozov

193 followers · starred Apr 2020