|
@@ -33,23 +33,38 @@ func NewBlacklistManager(sysdb *db.Database) *BlackList {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+//Check if a given IP is banned
|
|
func (bl *BlackList) IsBanned(ip string) bool {
|
|
func (bl *BlackList) IsBanned(ip string) bool {
|
|
|
|
+ if bl.Enabled == false {
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
if bl.database.KeyExists("ipblacklist", ip) {
|
|
if bl.database.KeyExists("ipblacklist", ip) {
|
|
return true
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
return false
|
|
}
|
|
}
|
|
|
|
|
|
-func (bl *BlackList) SetBan(ipRange string) error {
|
|
|
|
|
|
+//Set the ban state of a ip or ip range
|
|
|
|
+func (bl *BlackList) Ban(ipRange string) error {
|
|
//Check if the IP range is correct
|
|
//Check if the IP range is correct
|
|
err := validateIpRange(ipRange)
|
|
err := validateIpRange(ipRange)
|
|
if err != nil {
|
|
if err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //Push it to the ban list
|
|
|
|
+ ipRange = strings.TrimSpace(ipRange)
|
|
|
|
+ ipRange = strings.ReplaceAll(ipRange, " ", "")
|
|
|
|
+ return bl.database.Write("ipblacklist", ipRange, true)
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func (bl *BlackList) UnBan(ipRange string) error {
|
|
|
|
+ //Check if the IP range is correct
|
|
return nil
|
|
return nil
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+//Check if an given ip in the given range
|
|
func ipInRange(ip string, ipRange string) bool {
|
|
func ipInRange(ip string, ipRange string) bool {
|
|
ip = strings.TrimSpace(ip)
|
|
ip = strings.TrimSpace(ip)
|
|
ipRange = strings.TrimSpace(ipRange)
|
|
ipRange = strings.TrimSpace(ipRange)
|