package verify import ( "fmt" "net" "quickip/internal/model" ) type Service struct{} func New() *Service { return &Service{} } func (s *Service) Verify(input model.InterfaceConfig) error { iface, err := net.InterfaceByName(input.Interface) if err != nil { return err } addrs, err := iface.Addrs() if err != nil { return err } for _, addr := range addrs { ipNet, ok := addr.(*net.IPNet) if !ok || ipNet.IP.To4() == nil { continue } prefix, _ := ipNet.Mask.Size() if ipNet.IP.String() == input.IP && prefix == input.Prefix { return nil } } return fmt.Errorf("目标接口地址未按预期生效") }