add all files from Hong
This commit is contained in:
50
plugins/range/static_ip.go
Normal file
50
plugins/range/static_ip.go
Normal file
@@ -0,0 +1,50 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user