Reverse domain name notation

From Infogalactic: the planetary knowledge core
(Redirected from Reverse-DNS)
Jump to: navigation, search

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Lua error in package.lua at line 80: module 'strict' not found. Reverse domain name notation (or reverse-DNS) is a naming convention for the components, packages, and types used by a programming language, system or framework. A characteristic of reverse-DNS strings is that they are based on registered domain names, and are only reversed for sorting purposes. For example, if a company making a product called "MyProduct" has the registered domain name "example.com", they could use the reverse-DNS-ish string "com.example.MyProduct" to describe it. Reverse-DNS names are a simple way of reducing name-space collisions, since any domain name is registered by only one party at a time.

History

Reverse-DNS first became widely used with the Java platform, and has since been used for other systems, for example, ActionScript 3 packages and Android applications.[citation needed]

Examples

Examples of systems that use Reverse-DNS are Sun Microsystems' Java platform and Apple's Uniform Type Identifier or UTI. The Android operating system also makes use of the notation for classifying applications, as the Dalvik virtual machine made use of Java.

dconf which is the configuration backend used by GNOME.

Example of reverse-DNS strings are:

Regular expression

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

Code

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.split('.').reverse.join('.')
end

Swift

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

Using Java 1.8 stream API[1]

//Using stream functions and Collectors
static String reverseDomain(String domain) {    
    return Arrays.asList(domain.split("\\.")).stream()
        .sorted(Collections.reverseOrder())
	    .collect(Collectors.joining("."));
}

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.

External links