Prawidłowe znaki nazwy hosta?

85

Jakie są prawidłowe znaki w nazwie hosta? To byłoby coś w rodzaju komputera podłączonego do sieci lub domeny internetowej.

Aby ująć to w kontekście, piszę grę na PC, która łączy się ze zdalnym serwerem; więc mam pole na nazwę hosta i pole na port. Oczywiście port jest liczbą z krótkiego zakresu, ale muszę wiedzieć, jakie są wszystkie możliwe znaki nazwy hosta (i jakikolwiek inny wzorzec, który może być wymagany - czy nazwa hosta musi zaczynać się od litery?).

Przykłady nazw hostów obejmują localhostlub google.com.

Ricket
źródło
2
Polecenie sethostname linux przyjmie dowolne bajty.
OrangeDog

Odpowiedzi:

91

Sprawdź tę wiki , a konkretnie sekcję Ograniczenia dotyczące prawidłowych nazw hostów

Nazwy hostów składają się z serii etykiet połączonych kropkami, podobnie jak wszystkie nazwy domen. Na przykład „en.wikipedia.org” to nazwa hosta. Każda etykieta musi mieć od 1 do 63 znaków, a cała nazwa hosta (w tym kropki rozdzielające, ale nie kropka na końcu) może mieć maksymalnie 253 znaki ASCII.

Standardy internetowe (Request for Comments) dotyczące protokołów wymagają, aby etykiety nazw hostów komponentów mogły zawierać tylko litery ASCII od „a” do „z” (bez rozróżniania wielkości liter), cyfry od „0” do „9” oraz łącznik („-”). Oryginalna specyfikacja nazw hostów w RFC 952 wymagała , aby etykiety nie mogły rozpoczynać się cyfrą ani łącznikiem i nie mogły kończyć się łącznikiem. Jednak kolejna specyfikacja ( RFC 1123 ) zezwalała na rozpoczynanie etykiet nazw hostów od cyfr. Żadne inne symbole, znaki interpunkcyjne ani odstępy nie są dozwolone.

Aaron Hathaway
źródło
6
Upewnij się, że wiesz, czy szukasz nazwy hosta, w pełni kwalifikowanej nazwy domeny, czy też jednej lub drugiej.
Kevin Gross
Wyjaśnij również, czy szukasz ścisłego wymogu współdziałania DNS, czy nie. W szczególności DNS zabrania podkreślenia w etykietach nazw hostów, podczas gdy wiele systemów operacyjnych zezwala na ich użycie lokalne. Serwery DNS są zwykle łagodne, a DNS obecnie w praktyce wymaga podkreślenia w niektórych typach rekordów, takich jak rekordy TXT (w przypadku DKIM itp.), Ale nie w etykietach nazw hostów.
tripleee
26

Zależy to od tego, czy przetwarzasz nazwy IDN przed czy po toASCIIalgorytmie IDN (to znaczy, czy widzisz nazwę domeny παράδειγμα.δοκιμήw języku greckim czy jako xn--hxajbheg2az3al.xn--jxalpdlp?).

W tym drugim przypadku - gdy obsługujesz nazwy IDN za pośrednictwem kodu punycode - obowiązują stare reguły RFC 1123:

U + 0041 do U + 005A (AZ), U + 0061 do U + 007A (az) skrzynia składana jedna po drugiej, U + 0030 do U + 0039 (0-9) i U + 002D (-).

i U + 002E (.) oczywiście; zasady dotyczące etykiet pozwalają na inne, z kropkami między etykietami.

Jeśli widzisz go w postaci IDN, dozwolone znaki są bardzo zróżnicowane, zobacz http://unicode.org/reports/tr36/idn-chars.html, aby uzyskać poręczny wykres wszystkich prawidłowych znaków.

Jest szansa, że ​​twój kod sieciowy poradzi sobie z punycode, ale twój kod wyświetlania (lub nawet tylko przekazywanie ciągów do i z innych warstw) w formie bardziej czytelnej dla człowieka, ponieważ nikt nie uruchamia serwera na السعودية. domena chce, aby ich serwer był wymieniony jako włączony .xn--mgberp4a5d4ar.

Jon Hanna
źródło
1
Wow, nigdy nie widziałem IDN i Ponycode! W tej chwili planuję tylko wsparcie w języku angielskim, ponieważ to tylko mój ulubiony projekt, ale na pewno nauczyłem się czegoś z Twojej odpowiedzi!
Ricket
2
Wspaniałą rzeczą w sposobie działania punycode jest to, że poniżej pewnego poziomu (tego, na którym tworzysz sieć) wszystko jest w ASCII. To prawie sposób na udawanie, że technologia ASCII może współpracować z innym tekstem (w tym niektórymi angielskimi słowami, które wcześniej były niedozwolone). Oprócz podania całej ścieżki aktualizacji, daje ona również jedną: zbuduj ją tak, jak mówi RFC 1123, a jeśli później dodasz obsługę IDN, kod sieci pozostanie taki sam i dodasz obsługę RFC 3490 na górze (biblioteki też są dostępne w wielu językach).
Jon Hanna,
2
@Ricket nie wiem, czy to literówka, czy też żartowałeś z nazwy („ponycode”). Osobiście nazywam ich „małostkowymi”.
Camilo Martin,
4

„Nazwa” (nazwa sieci, hosta, bramy lub domeny) to ciąg tekstowy składający się z maksymalnie 24 znaków z alfabetu (AZ), cyfr (0-9), znaku minus (-) i kropki (.). Pamiętaj, że kropki są dozwolone tylko wtedy, gdy służą do rozgraniczenia elementów „nazw w stylu domeny”. (Dodatkowe informacje można znaleźć w dokumencie RFC-921 „Harmonogram wdrażania systemu nazw domen”). Żadne spacje ani spacje nie są dozwolone jako część nazwy. Nie ma rozróżnienia między dużymi i małymi literami. Pierwszy znak musi być znakiem alfa. Ostatni znak nie może być znakiem minus ani kropką. Host, który służy jako GATEWAY, powinien mieć w nazwie „-GATEWAY” lub „-GW”. Hosty, które nie służą jako bramy internetowe, nie powinny używać w swoich nazwach „-GATEWAY” ani „-GW”. Gospodarz będący TAC powinien mieć ”

Można to znaleźć w http://support.microsoft.com/kb/149044

Vivek
źródło
Jest to dosłownie cytowane z RFC 952 [ tools.ietf.org/html/rfc952] . Jest to mylące - nazwy hostów mogą mieć od 1 do 63 znaków, jak wspomniano powyżej.
Craig S. Anderson
Niestety link jest uszkodzony.
Eugene Mayevski 'Callback
0

Jeśli rejestrujesz domenę i zakończenie (np. .com) Nie jest to IDN, jak powiedział Aaron Hathaway : Nazwy hostów składają się z serii etykiet połączonych kropkami, podobnie jak wszystkie nazwy domen. Na przykład en.wikipedia.orgto nazwa hosta. Każda etykieta musi mieć od 1 do 63 znaków, a cała nazwa hosta (w tym kropki rozdzielające, ale nie kropka na końcu) może mieć maksymalnie 253 znaki ASCII.

Standardy internetowe (Request for Comments) dotyczące protokołów wymagają, aby etykiety nazw hostów komponentów mogły zawierać tylko litery od ASCII ado z(bez rozróżniania wielkości liter), cyfry 0do 9i łącznik -. Oryginalna specyfikacja nazw hostów w RFC 952 wymagała, aby etykiety nie mogły zaczynać się cyfrą ani łącznikiem i nie mogły kończyć się łącznikiem. Jednak kolejna specyfikacja (RFC 1123) zezwalała na rozpoczynanie etykiet nazw hostów od cyfr. Żadne inne symbole, znaki interpunkcyjne ani odstępy nie są dozwolone.

Później, Hiszpania To .es, .com.es, .org.es, .nom,es, .gob.esi .edu.eswprowadził TLD IDN, jeśli TLD jest jednym .eslub inny, który obsługuje tę funkcję, każdy znak może być używany, ale nie można połączyć alfabetów jak łacińskim, greckim lub Cyryla jednego hosta, i że szanuje rzeczy, które nie mogą się wydarzyć na początku lub na końcu.

Jeśli używasz niezarejestrowanych tld, tylko do sieci lokalnej, na przykład z lokalnym DNS lub z plikami hostów, możesz traktować je wszystkie jako IDN.

Pamiętaj, że niektóre programy mogą nie działać dobrze, szczególnie te stare, przestarzałe i niepopularne.

Javier CasdeDie
źródło