Как получить основной домен из случайного субдомена в Bash - PullRequest
1 голос
/ 06 ноября 2019

Я ищу способ получить основной домен (голый) из случайного домена / субдомена. То, что я ищу, это не команда sed или awk (так как домен является случайным), а некоторая строка с dig, host или nslookup, которая может фактически показать голый домен. Любое предложение?

Пример:

from www.bbc.co.uk -> bbc.co.uk
from www.google.com -> google.com
from subdomain.google.co.uk -> google.co.uk
from subdomain.ofasubdomain.google.com.au -> google.com.au 


1 Ответ

0 голосов
/ 06 ноября 2019

Я не эксперт по доменным именам - На основании https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains, за небольшим исключением все домены с двухбуквенным суффиксом будут иметь основной домен что-то .bb.cc и все другие суффиксы (обычно 3 буквы), основным доменом будет что-то .ccc

Использование bash

domain=...
md=
p2='^(.*\.)?([^.]+\.[a-z]+\.[a-z][a-z])$'
p3='^(.*\.)?([^.]+\.(com|org|net|int|edu|gov|mil))$'
px='^(.*\.)([a-z]+)$'

   # 2 letter country codes
if [[ "$domain" =~ $p2 ]] ; then
    md=${BASH_REMATCH[2]};
   # 3 letters legacy domain
elif [[ "$domain" =~ $p3 ]] ; then
    md=${BASH_REMATCH[2]};
   # All Other
elif [[ "$domain" =~ $px ]] ; then
    md=${BASH_REMATCH[2]};

fi ;
echo "$domain -> $md"

Может быть расширен для обработки нескольких 4-х буквенных доменов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...