Notación de nombre de dominio inverso

La notación de nombre de dominio de inversa o DNS-inverso (en inglés: reverse-DNS) es una convención para nombrar los componentes, paquetes, y los tipos utilizados por un lenguaje de programación, un sistema o un framework.

Una característica del las cadenas de texto DNS-inversa es que están basados en dominios registrados, y es únicamente invertido para ordenar cosas. Por ejemplo, si una compañía que hace un producto llamado "MiProducto" y tiene el nombre de dominio registrado "ejemplo.com", podrían utilizar el DNS-inverso "com.ejemplo.MiProducto" para describirlo.

Historia

El DNS-inverso primero devenía ampliamente utilizado con la plataforma Java, y desde entonces ha sido utilizado para otros sistemas, por ejemplo, para los paquetes de ActionScript 3.[cita requerida]

Ejemplos

Ejemplos de sistemas que usan DNS-inverso son: Java de Sun Microsystems, Uniform Type Identifier (UTI) de Apple. El sistema operativo Android también hace uso de la notación para clasificar las aplicaciones, como la máquina virtual Dalvik que hace uso de Java.

Ejemplos de DNS-inverso:

  • com.adobe.postscript-font (cadena de texto UTI para las fuentes de Adobe Systems)
  • com.apple.ostype (cadena de texto UTI para OSType de Apple)
  • org.omg.CORBA (librería de Java para CORBA)
  • org.w3c.dom (librería de Java para el Document Object Model (DOM) de la W3C)
  • dconf que es la herramienta de configuración GNOME.

Expresión regular

^[Un-Za-z]{2,6}((?!-)[Un-Za-z0-9-]{1,63}(?<!-)\\.)+$

Código

C#

static string ReverseDomainName(string domain)
{
    return string.Join(".", domain.Split('.').Reverse());
}

JavaScript

function reverseDomain(domain) {
    return domain.split('.').reverse().join('.');
}

PHP

function reverseDomain(domain) {
    return implode('.', array_reverse(explode('.', domain)));
}

Python

def reverse_domain(domain):
    return '.'.join(reversed(domain.split('.')))

Ruby

def reverse_domain(domain)
  domain.sp­lit('.').r­everse.j­oin('.')
end

Swift

func reverseDomain(domain:String) -> String{
    return domain.componentsSeparatedByString(".").reverse().joinWithSeparator(".")
}

Referencias

  • «Apple Developer Connection: Introduction to Uniform Type Identifiers Overview» (en inglés). 9 de noviembre de 2005. Consultado el 4 de abril de 2013. 

Enlaces externos

  • Eclipse Naming Conventions
  • Re: gnu.* namespace discussion
Control de autoridades
  • Proyectos Wikimedia
  • Wd Datos: Q7318226
  • Wd Datos: Q7318226