mirror of
https://github.com/zu1k/nali.git
synced 2025-02-09 05:42:43 +08:00
42 lines
610 B
Go
42 lines
610 B
Go
package tools
|
|
|
|
import (
|
|
"net"
|
|
"strings"
|
|
|
|
"github.com/zu1k/nali/internal/re"
|
|
)
|
|
|
|
func GetIP4FromString(str string) []string {
|
|
str = strings.Trim(str, " ")
|
|
return re.IPv4Re.FindAllString(str, -1)
|
|
}
|
|
|
|
func GetIP6FromString(str string) []string {
|
|
str = strings.Trim(str, " ")
|
|
return re.IPv6Re.FindAllString(str, -1)
|
|
}
|
|
|
|
const (
|
|
ValidIPv4 = iota
|
|
ValidIPv6
|
|
InvalidIP
|
|
)
|
|
|
|
type Valid int
|
|
|
|
func ValidIP(IP string) (v Valid) {
|
|
for i := 0; i < len(IP); i++ {
|
|
switch IP[i] {
|
|
case '.':
|
|
v = ValidIPv4
|
|
case ':':
|
|
v = ValidIPv6
|
|
}
|
|
}
|
|
if ip := net.ParseIP(IP); ip != nil {
|
|
return v
|
|
}
|
|
return InvalidIP
|
|
}
|