github.com/igoogolx/clash@v1.19.8/component/resolver/enhancer.go (about)

     1  package resolver
     2  
     3  import (
     4  	"net"
     5  )
     6  
     7  var DefaultHostMapper Enhancer
     8  
     9  type Enhancer interface {
    10  	FakeIPEnabled() bool
    11  	MappingEnabled() bool
    12  	IsFakeIP(net.IP) bool
    13  	IsExistFakeIP(net.IP) bool
    14  	FindHostByIP(net.IP) (string, bool)
    15  }
    16  
    17  func FakeIPEnabled() bool {
    18  	if mapper := DefaultHostMapper; mapper != nil {
    19  		return mapper.FakeIPEnabled()
    20  	}
    21  
    22  	return false
    23  }
    24  
    25  func MappingEnabled() bool {
    26  	if mapper := DefaultHostMapper; mapper != nil {
    27  		return mapper.MappingEnabled()
    28  	}
    29  
    30  	return false
    31  }
    32  
    33  func IsFakeIP(ip net.IP) bool {
    34  	if mapper := DefaultHostMapper; mapper != nil {
    35  		return mapper.IsFakeIP(ip)
    36  	}
    37  
    38  	return false
    39  }
    40  
    41  func IsExistFakeIP(ip net.IP) bool {
    42  	if mapper := DefaultHostMapper; mapper != nil {
    43  		return mapper.IsExistFakeIP(ip)
    44  	}
    45  
    46  	return false
    47  }
    48  
    49  func FindHostByIP(ip net.IP) (string, bool) {
    50  	if mapper := DefaultHostMapper; mapper != nil {
    51  		return mapper.FindHostByIP(ip)
    52  	}
    53  
    54  	return "", false
    55  }