Validação de URL PHP

Eu sei que há um número infinito de threads fazendo esta pergunta, mas eu não consegui encontrar um que possa me ajudar com isso.

Eu estou basicamente tentando analisar uma lista de cerca de 10.000.000 de URLs, verifique se eles são válidos pelos seguintes critérios e, em seguida, obter o URL do domínio raiz. Esta lista contém praticamente tudo o que você pode imaginar, incluindo coisas como (e o URL formatado esperado):

<code>biy.ly/test [VALID] [return - bit.ly]
example.com/apples?test=1&id=4 [VALID] [return - example.com]
host101.wow404.apples.test.com/cert/blah [VALID] [return - test.com]
101.121.44.xxx [**inVALID**] [return false]
localhost/noway [**inVALID**] [return false]
www.awesome.com [VALID] [return - awesome.com]
i am so awesome [**inVALID**] [return false]
http://404.mynewsite.com/visits/page/view/1/ [VALID] [return - mynewsite.com]
www1.151.com/searchresults [VALID] [return - 151.com]
</code>

Alguém tem alguma sugestão para isso?

questionAnswers(4)

yourAnswerToTheQuestion