Дійсні символи імені хосту?


85

Які дійсні символи імені хосту? Це може бути щось на зразок мережевого комп’ютера чи веб-домену.

Поклавши це в контекст, я пишу гру для ПК, яка підключається до віддаленого сервера; отже, у мене є поле для імені хосту та поле для порту. Очевидно, що порт - це число в короткому діапазоні, але мені потрібно знати, які всі можливі символи імені хосту (і будь-який інший шаблон, який може знадобитися - чи потрібно ім'я хосту починати з літери?).

Приклади імені хосту включають localhostабо google.com.


2
Команда linux sethostname приймає будь-які байти.
OrangeDog

Відповіді:


91

Оформіть цю вікі , зокрема розділ Обмеження дійсних імен хостів

Імена хостів складаються з серій міток, об'єднаних крапками, як і всі доменні імена. Наприклад, "en.wikipedia.org" - це ім'я хосту. Кожна мітка повинна мати довжину від 1 до 63 символів, а все ім’я хосту (включаючи розділювальні крапки, але не кінцеву крапку) має максимум 253 символи ASCII.

Інтернет-стандарти (Запити на коментарі) для протоколів передбачають, що мітки імен хостів компонентів можуть містити лише букви ASCII від "a" до "z" (без урахування регістру), цифри від "0" до "9" та дефіс ('-'). Оригінальна специфікація імен хостів у RFC 952 передбачала, що мітки не повинні починатися з цифри або дефіса, і не повинні закінчуватися дефісом. Однак подальша специфікація ( RFC 1123 ) дозволила мітки імен хостів починати з цифр. Заборонено використовувати інші символи, розділові знаки чи пробіли.


6
Переконайтеся, що вам ясно, чи шукаєте ви ім’я хосту, повністю кваліфіковане доменне ім’я чи будь-яке інше.
Kevin Gross

Крім того, чітко визначте, чи шукаєте ви суворих вимог щодо сумісності DNS чи ні. Зокрема, DNS забороняє підкреслювати ярлики імен хостів, тоді як багато операційних систем дозволяють їх для локального використання. DNS-сервери, як правило, поблажливі, і DNS зараз на практиці вимагає підкреслення деяких типів записів, таких як записи TXT (для DKIM тощо), тільки не для міток імен хостів.
триплі

26

Це залежить від того, чи обробляєте ви IDN до або після toASCIIалгоритму IDN (тобто, чи бачите ви доменне ім’я παράδειγμα.δοκιμήгрецькою або якxn--hxajbheg2az3al.xn--jxalpdlp ?).

В останньому випадку - коли ви обробляєте IDN через punycode - застосовуються старі правила RFC 1123:

U + 0041 - U + 005A (AZ), U + 0061 - U + 007A (az), складені один в одного, U + 0030 - U + 0039 (0-9) та U + 002D (-).

і U + 002E (.) звичайно; правила для етикеток дозволяють інші, крапки між етикетками.

Якщо ви бачите його у формі IDN, дозволені символи дуже різноманітні, див. Http://unicode.org/reports/tr36/idn-chars.html для зручної діаграми всіх дійсних символів.

Швидше за все, ваш мережевий код буде мати справу з маленьким кодом, але ваш код відображення (або навіть просто передача рядків до та з інших шарів) у більш зручній для читання формі, оскільки ніхто не працює на сервері на السعودية. домен хоче бачити їхній сервер у списку як включений .xn--mgberp4a5d4ar.


1
Ого, я навіть ніколи не бачив IDN та Ponycode! На даний момент я планую лише підтримку англійською мовою, оскільки це лише мій проект для домашніх тварин, але я точно дізнався щось із вашої відповіді!
Ricket

2
Чудова річ у тому, як працює punycode, полягає в тому, що нижче певного рівня (того, де ви працюєте в мережі) все це ASCII. Це майже спосіб прикинутися, що лише техніка ASCII може працювати з іншим текстом (включаючи деякі англійські слова, які раніше не дозволялися). Окрім того, що надає всьому слову шлях оновлення, він дає вам і один: Створіть його так, щоб робити так, як говорить RFC 1123, і якщо ви пізніше додасте підтримку IDN, мережевий код залишиться незмінним, і ви додасте підтримку RFC 3490 зверху (бібліотеки також доступні багатьма мовами).
Джон Ханна,

2
@Ricket не знає, чи друкарська помилка, чи ви жартували з назвою ("понікод"). Я називаю їх "покараними", особисто.
Каміло Мартін

4

"Ім'я" (мережа, хост, шлюз або доменне ім'я) - це текстовий рядок довжиною до 24 символів, витягнутий з алфавіту (AZ), цифр (0-9), знака мінус (-) та крапки (.). Зверніть увагу, що крапки дозволяються лише тоді, коли вони служать для розмежування компонентів "імен доменних стилів". (Див. RFC-921, "Графік впровадження системи доменних імен", для довідкового тексту). Не допускається використання порожніх чи пробільних символів як частини імені. Не розрізняють великі та малі літери. Перший символ повинен бути альфа-символом. Останній символ не повинен бути знаком мінус або крапкою. Хост, який служить GATEWAY, повинен мати в назві "-GATEWAY" або "-GW". Хости, які не служать Інтернет-шлюзами, не повинні використовувати "-GATEWAY" та "-GW" як частину своїх назв. Хост, який є TAC, повинен мати "

Це надано на веб-сайті http://support.microsoft.com/kb/149044


Це дослівне цитування з RFC 952 [ tools.ietf.org/html/rfc952] . Це вводить в оману - імена хостів можуть мати довжину від 1 до 63 символів, як зазначено вище.
Крейг С. Андерсон,

Посилання не працює, на жаль.
зворотний дзвінок Євгена Маєвського

0

Якщо ви реєструєте домен і припинення (колишнє .com), це не IDN, як сказав Аарон Хетеуей : Імена хостів складаються з серій міток, об'єднаних крапками, як і всі доменні імена. Наприклад,en.wikipedia.org це ім'я хосту. Кожна мітка повинна мати довжину від 1 до 63 символів, а все ім’я хосту (включаючи розділювальні крапки, але не кінцеву крапку) має максимум 253 символи ASCII.

Стандарти Інтернету (Запити на коментарі) для протоколів санкціонувати , що компонент ім'я хост мітка може містити тільки ASCII букву aчерез z(в залежності від регістру), цифри 0через 9та дефіс -. Оригінальна специфікація імен хостів у RFC 952 передбачала, що мітки не повинні починатися з цифри або дефіса, і не повинні закінчуватися дефісом. Однак подальша специфікація (RFC 1123) дозволила мітки імен хостів починати з цифр. Заборонено використовувати інші символи, розділові знаки чи пробіли.

Пізніше, Іспанія з його .es, .com.es, .org.es, .nom,es, .gob.esі .edu.esввела IDN двійнят, якщо ваш TLD є одним з .esабо будь-яких інших , який підтримує його, будь-який символ може бути використаний, але ви не можете комбінувати алфавіти як латинські, грецькі або Кирило в одному імені хоста, і що він поважає те, що не може йти ні на початку, ні в кінці.

Якщо ви використовуєте незареєстровані tlds, лише для локальних мереж, наприклад, з локальним DNS або з файлами хостів, ви можете розглядати їх як IDN.

Майте на увазі, деякі програми не можуть працювати добре, особливо старі, застарілі та непопулярні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.