Documentation ¶
Index ¶
- Constants
- func CIDRListAll(cidr string) ([]string, error)
- func CIDRtotMask(cidr string) (net.IPMask, error)
- func CidrContainsIP(cidr, ip string) (bool, error)
- func DecodeURL(encodedUrl string) (string, error)
- func GetAllLANIPv4CIDRs() ([]string, error)
- func GetAllNicNames() ([]string, error)
- func GetLanIps() ([]net.IP, error)
- func GetOutboundIP() (net.IP, error)
- func GetRandomAvailablePort(nettype string) (int, error)
- func GetWanIpOL(proxy string) (net.IP, error)
- func IsAndOnlyDomain(str string) bool
- func IsAudioUrl(url string) bool
- func IsDomain(domain string) bool
- func IsDomainONLINE(domain string) bool
- func IsFilePath(s string) bool
- func IsIPString(s string) bool
- func IsImageUrl(url string) bool
- func IsLocalInboundPortClear(nettype string, port int) (bool, error)
- func IsLocalPortUsing(nettype string, port int) (bool, error)
- func IsPrivilegedPort(port int) bool
- func IsRegistrable(domain string) bool
- func IsRemotePortOpen(nettype string, port int) (bool, error)
- func IsUrl(s string) bool
- func IsValidPort(port int) bool
- func IsVideoUrl(url string) bool
- func Join(baseUrl string, relUrl string) (absUrl string, err error)
- func LastPath(urlstr string) string
- func MaskToInt(mask net.IPMask) (uint16, error)
- func ParseAddr(addr net.Addr) (IP net.IP, port int, err error)
- func ParseHostAddrOnline(addr string) (IP net.IP, port int, err error)
- func ParseIP(s string) (net.IP, error)
- func ParseProxyAddr(address string) (proxyType, host string, err error)
- func RemoveDuplicateUrl(urls []string) []string
- type AddrParser
- type AddrSlice
- type Domain
- type GeoFinder
- type IpGeo
- type IpType
- type NicAddr
- type NicInfo
- type Path
- type Scheme
- type UrlAuth
- type UrlChunk
- type UrlHost
- type Whois
Constants ¶
const ( /* public schemes */ SchemeUnknown = iota SchemeHttp SchemeHttps SchemeFtp SchemeFtps SchemeMailto SchemeFile SchemeIdap SchemeNews SchemeGopher SchemeTelnet SchemeWais SchemeNntp SchemeData SchemeIrc SchemeIrcs SchemeWorldwind SchemeMms SchemeSocks4 SchemeSocks4a SchemeSocks5 SchemeSocks5s SchemeSocksHttp SchemeSocksHttps SchemeShadowsocks /* custom schemes */ SchemeSvn SchemeHg SchemeGit SchemeThunder SchemeTencent SchemeEd2k SchemeMagnet SchemeTwitter )
Variables ¶
This section is empty.
Functions ¶
func CIDRListAll ¶
List all ip address contained in this cidr
func CIDRtotMask ¶
Extracts IP mask from CIDR address.
func CidrContainsIP ¶
func DecodeURL ¶
https://video-icn1-1.xx.fbcdn.net/v/t42.9040-2/58467180_2666273813399564_6679224605468524544_n.mp4?_nc_cat=100\u0026efg=eyJybHIiOjY5NCwicmxhIjo1MTIsInZlbmNvZGVfdGFnIjoic3ZlX3NkIn0=\u0026rl=694\u0026vabr=386\u0026_nc_ht=video-icn1-1.xx\u0026oh=881ead117c700970945a89716b3a0b54\u0026oe=5CB9BAA5
func GetAllLANIPv4CIDRs ¶
func GetAllNicNames ¶
func GetOutboundIP ¶
get preferred outbound ip of this machine it will fail if device is not connected to LAN router
func GetRandomAvailablePort ¶
func IsAndOnlyDomain ¶
"http://bing.com/" is domain url, "http://bing.com/search" is not domain url
func IsAudioUrl ¶
func IsDomainONLINE ¶
func IsFilePath ¶
func IsIPString ¶
func IsImageUrl ¶
func IsLocalInboundPortClear ¶
端口是否通畅 如果发起检测端不是你的程序,需要开关端口监听多次才能确定,因为,如果端口可访问,也可能是被映射到别的电脑上而那个电脑的该端口也被监听了
func IsRegistrable ¶
Principle: WHOIS information of domains which are not taken include "No match".
func IsRemotePortOpen ¶
只能检测端口是否正开启,如果未开启,可能是多种原因,比如主机关机、防火墙、端口未映射、端口没有服务在监听等
func IsValidPort ¶
func IsVideoUrl ¶
func Join ¶
Combine absolute path and relative path to get a new absolute path If relUrl is absolute url, returns this relUrl
func ParseHostAddrOnline ¶
"HOSTNAME" / "DOMAIN" / "IP" / ":PORT" / "HOSTNAME:PORT" / "DOMAIN:PORT" / "IP:PORT" -> net.IP, port return port maybe -1, this is NOT an error NOTICE: ResolveIPAddr() & LookupIP() API can't recognize "1127.0.0.1" or "abc127.0.0.1" style illegal IP string, they still returns a IP address and nil error
func ParseProxyAddr ¶
func RemoveDuplicateUrl ¶
Types ¶
type AddrParser ¶
type AddrParser struct {
// contains filtered or unexported fields
}
func NewParser ¶
func NewParser(address_string string) *AddrParser
func (*AddrParser) Scheme ¶
func (ap *AddrParser) Scheme() string
func (*AddrParser) Split ¶
func (ap *AddrParser) Split() (*AddrSlice, error)
func (*AddrParser) Verify ¶
func (ap *AddrParser) Verify() error
type AddrSlice ¶
func ParseUrl ¶
NOTICE url.Parse("192.168.1.1:80") reports error because RFC3986 says "192.168.1.1:80" is an invalid url, the correct way is "//192.168.1.1:80". In xaddr library and urlx library, "192.168.1.1:80" is a valid url because it is used a lot Reference: https://github.com/golang/go/issues/19297
type Domain ¶
type Domain struct { TLD string // "com" | "com.cn" SLD_ROOT string // "baidu" TRD_SUB string // "www" SiteDomain string // "baidu.com" }
func ParseDomain ¶
NOTICE This an offline domain parse function, please update source repo often
func ParseONLINE ¶
NOTICE 优点: 从权威网站下载TLD列表,判断结果准确 缺点: 初始化或者更新时必须在线工作,下载期间接口响应慢
type GeoFinder ¶
type GeoFinder struct {
// contains filtered or unexported fields
}
func NewGeoFinderONLINE ¶
type IpType ¶
type IpType int
const ( NotIP IpType = 0 IPv4_LAN IpType = 1 IPv4_WAN IpType = 2 IPv6_LAN IpType = 3 IPv6_WAN IpType = 4 IPv4_LOOPBACK IpType = 5 IPv6_LOOPBACK IpType = 6 IPv4_ANY IpType = 7 IPv6_ANY IpType = 8 )
const for CheckIPString
func CheckIPString ¶
check is IPv4_LAN or IPv4_WAN or IPv6 or NotIP
type NicInfo ¶
type NicInfo struct { Name string Desc string MAC string Addrs []NicAddr IsPhysical bool // Is physical network card or virtual network card Flags string MTU int }
func GetNicInfo ¶
type UrlChunk ¶
type UrlChunk struct { Scheme string User string Password string Host string Port int64 Path string Param string }
func ParseUrlString ¶
mongodb://user:password@127.0.0.1:27717 ftp://user:password@127.0.0.1:1999/files/abc.mp4
type Whois ¶
type Whois struct { // Query and Host are copied from the Request. // Query string Host string // FetchedAt is the date and time the response was fetched from the server. FetchedAt time.Time // Body contains the raw bytes of the network response (minus HTTP headers). //Body []byte Body string }
Cloned from github.com/domainr/whois Whois response represents a whois response from a server.