Files
coredhcp/plugins/range/static_ip.go
2025-06-30 09:23:28 +08:00

50 lines
836 B
Go

package rangeplugin
import (
"encoding/csv"
"fmt"
"io"
"os"
)
const staticIpFile string = "./static_ip.csv"
var staticIpPool map[string]string // mac as key
var macPool map[string]string // ip as key
func importStaticIpFile() {
fs, err := os.Open(staticIpFile)
if err != nil {
//fmt.Println(err)
return
}
defer fs.Close()
staticIpPool = make(map[string]string)
macPool = make(map[string]string)
r := csv.NewReader(fs)
for {
row, err := r.Read()
if err != nil && err != io.EOF {
fmt.Printf("Can not read, err is %+v", err)
}
if err == io.EOF {
break
}
//fmt.Println(row)
if len(row) > 1 {
staticIpPool[row[0]] = row[1]
macPool[row[1]] = row[0]
}
}
}
func GetStaticIp(mac string) string {
return staticIpPool[mac]
}
func IsStaticIp(ip string) bool {
_, ok := macPool[ip]
return ok
}