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