50 lines
607 B
Go
50 lines
607 B
Go
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"log"
|
|
"net/url"
|
|
"os"
|
|
)
|
|
|
|
func main() {
|
|
var urls []string
|
|
|
|
scanner := bufio.NewScanner(os.Stdin)
|
|
|
|
for scanner.Scan() {
|
|
u := scanner.Text()
|
|
|
|
if u != "" {
|
|
urls = append(urls, u)
|
|
}
|
|
}
|
|
|
|
if err := scanner.Err(); err != nil {
|
|
log.Println(err)
|
|
}
|
|
|
|
for _, url := range urls {
|
|
host := host(url)
|
|
|
|
if host == "" {
|
|
fmt.Fprintln(os.Stderr, "Cannot parse as URL: "+url)
|
|
continue
|
|
}
|
|
|
|
fmt.Println(host)
|
|
}
|
|
}
|
|
|
|
func host(u string) string {
|
|
parsed, err := url.Parse(u)
|
|
|
|
if err != nil {
|
|
fmt.Fprintln(os.Stderr, err)
|
|
return ""
|
|
}
|
|
|
|
return parsed.Host
|
|
}
|