Thanks to visit codestin.com
Credit goes to github.com

Skip to content

christophbrejla/dhcp-client

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Golang DHCP Client Demonstration

A toy golang DHCP client to explore the DHCP protocol. Randomizes request MAC address as to not step on the same lease over and over.

Usage

./compile.sh
./toydhcp [-ip4 address]

Outline

DHCP Protocol Diagram

flow
Wikipedia - Gelmo96 / CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)

DHCP Packet Sequence

DISCOVER

discover

OFFER

offer

REQUEST

request

(N)ACKNOWLEDGE

acknowledge

DHCP Option Codes

A small selection of important DHCP Option Codes

  • 53 - DHCP Message Type (1B) - Indicates the specific type of DHCP message: DISCOVER(1), OFFER(2), REQUEST(3), DECLINE(4), ACK(5), NACK(6), RELEASE(7), INFORM(8)
  • 50 - Requested IP Address (4B)
  • 54 - DHCP Server Address (4B)
  • 51 - Lease Time in Seconds (4B)
  • 3 - Router IP Address (4B)
  • 1 - Network Subnet Mask (4B)
  • 255 - End Mark (1B)

Additional Reading

Wikipedia.org - DHCP
The TCP/IP Guide - DHCP Options

About

Reference DHCP client in go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.7%
  • Shell 0.3%