Obtener el nombre de dominio (no subdominio) en php

Tengo una URL que puede tener cualquiera de los siguientes formatos:

http://example.com
https://example.com
http://example.com/foo
http://example.com/foo/bar
www.example.com
example.com
foo.example.com
www.foo.example.com
foo.bar.example.com
http://foo.bar.example.com/foo/bar
example.net/foo/bar

Esencialmente, necesito poder hacer coincidir cualquier URL normal. Como puedo extraerexample.com (o .net, cualquiera que sea el tld. Necesito esto para trabajar con cualquier TLD). ¿De todo esto a través de una única expresión regular?

Respuestas a la pregunta(12)

Su respuesta a la pregunta