golang搭建一个dhcp分配局域网ip地址服务代码
代码语言:golang
所属分类:其他
代码描述:golang搭建一个dhcp分配局域网ip地址服务代码
代码标签: golang dhcp 分配 局域网 ip 地址 服务 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
package main
import (
"log"
"net"
"time"
"github.com/krolaw/dhcp4"
"github.com/krolaw/dhcp4/conn"
)
type DHCPHandler struct {
ip net.IP
start net.IP
leaseRange int
leaseDuration time.Duration
leases map[string]lease
options dhcp4.Options
}
type lease struct {
nic string
expiry time.Time
}
func (h *DHCPHandler) ServeDHCP(pkt dhcp4.Packet, msgType dhcp4.MessageType, options dhcp4.Options) dhcp4.Packet {
switch msgType {
case dhcp4.Discover:
freeIP := h.getFreeIP()
if freeIP == nil {
return nil
}
h.leases[freeIP.String()] = lease{nic: pkt.CHAddr().String(), expiry: time.Now().Add(h.leaseDuration)}
return dhcp4.ReplyPacket(pkt, dhcp4.Offer, h.ip, freeIP, h.leaseDuration,
h.opti.........完整代码请登录后点击上方下载按钮下载查看
网友评论0