// ParseUrlToIp url解析为ip
func ParseUrlToIp(url string) string {
_, domain, _, _, _, err := ParseUrl(url)
if err != nil {
log.Println("解析解析url异常: ", err)
return ""
}
ip := ResolveDomain(domain)
return ip
}
// ParseUrl 创建任务--解析url
func ParseUrl(targetUrl string) (string, string, string, string, string, error) {
if !strings.HasPrefix(targetUrl, "http") {
targetUrl = "http" + "://" + targetUrl
}
urlPtr, err := url.Parse(targetUrl)
if err != nil {
return "", "", "", "", "", err
}
scheme := urlPtr.Scheme
hostname := urlPtr.Hostname()
port := urlPtr.Port()
path := urlPtr.Path
query := urlPtr.RawQuery
if port == "" {
if scheme == "http" {
port = "80"
} else {
port = "443"
}
}
return scheme, hostname, port, path, query, nil
}
// ResolveDomain 解析域名为ip
func ResolveDomain(name string) string {
addr, err := net.ResolveIPAddr("ip", name)
if err != nil {
fmt.Println("Resolution error", err.Error())
return ""
}
fmt.Println("Resolved address is ", addr.String())
return addr.String()
}
golang域名解析为ip
猜你喜欢
转载自blog.csdn.net/SweetHeartHuaZai/article/details/130244391
今日推荐
周排行