Extract hostnames
Paste a list of URLs, a mail header, a proxy log or a page of text. Each hostname is listed once, lowercased, in the order it first appears. https://www.Example.org/a, admin@corp.io and a bare cdn.example.net give www.example.org, corp.io and cdn.example.net.
A name counts only when it ends in a top-level domain from the IANA root zone list. Version numbers like v2.1.0, file names like jquery.min.js, and paths like /var/www/site.com/ are skipped.
File names that look like domains
.py, .sh, .md, .rs, .zip and .mov are top-level domains as well as file extensions. In a build log, main.py and deploy.sh are files. Bare names with those endings are dropped, while the same name inside a link (https://bun.sh/) or an email is kept, because there it can only be a host.
Root domains
Every hostname is kept whole. mail.google.com and docs.google.com stay two entries. Working out that example.co.uk is a registrable domain and co.uk is not takes the Public Suffix List, which this page does not load.