| 12345678910111213141516171819202122232425262728293031323334 |
- 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("目标接口地址未按预期生效")
- }
|