4.1.3. «Дословные» адреса
Иногда хост не знает доменного имени и почтовая связь (в частности, передача сообщений об ошибках) блокируется. Для решения этой проблемы в качестве альтернативы доменному имени может использоваться специальная форма адреса (literal address). Для адресов IPv4 эта форма использует десятичное представление байтов IP-адреса с разделением точками. Адреса заключаются в квадратные скобки (например, [123.255.37.2]), которые говорят об использовании адреса IPv4 в десятичном представлении с разделением точками. Для IPv6 и других форм адресации, которые могут быть в последствии стандартизованы, форма включает стандартизованный тег, идентифицирующий синтаксис адреса, (двоеточие - :) и собственно адрес в формате, заданном стандартом [например, RFC 4291 [8] для IPv6].
В частности, используются следующие варианты:
IPv4-address-literal = Snum 3("." Snum)
IPv6-address-literal = "IPv6:" IPv6-addr
General-address-literal = Standardized-tag ":" 1*dcontent
Standardized-tag = Ldh-str
; должен быть опубликован в RFC со статусом Standards-Track и
; зарегистрирован IANA
dcontent = %d33-90 / ; Печатаемый символ US-ASCII
%d94-126 ; исключая "[", "\", "]"
Snum = 1*3DIGIT
; значения от 0 до 255 в десятичном представлении
IPv6-addr = IPv6-full / IPv6-comp / IPv6v4-full / IPv6v4-comp
IPv6-hex = 1*4HEXDIG
IPv6-full = IPv6-hex 7(":" IPv6-hex)
IPv6-comp = [IPv6-hex *5(":" IPv6-hex)] "::"
[IPv6-hex *5(":" IPv6-hex)]
; "::" представляет по крайней мере две 16-битовых группы нулей. В
; дополнение может использоваться до 6 групп.
IPv6v4-full = IPv6-hex 5(":" IPv6-hex) ":" IPv4-address-literal
IPv6v4-comp = [IPv6-hex *3(":" IPv6-hex)] "::"
[IPv6-hex *3(":" IPv6-hex) ":"]
IPv4-address-literal
; :: представляет по крайней мере две 16-битовых последовательности нулей
; в дополнение к :: может присутствовать не более 4 групп и
; IPv4-address-literal