Các ký tự hợp lệ của tên máy chủ?


85

Các ký tự hợp lệ của tên máy chủ là gì? Đây sẽ là một cái gì đó giống như một máy tính nối mạng hoặc một miền web.

Để đặt nó trong bối cảnh, tôi đang viết một trò chơi PC kết nối với một máy chủ từ xa; vì vậy tôi có một trường cho tên máy chủ và một trường cho cổng. Rõ ràng cổng là một số trong phạm vi Ngắn, nhưng tôi cần biết tất cả các ký tự tên máy chủ có thể có là gì (và bất kỳ mẫu nào khác có thể được yêu cầu - tên máy chủ có cần bắt đầu bằng một chữ cái không?).

Ví dụ về tên máy chủ bao gồm localhosthoặc google.com.


2
Lệnh sethostname trong linux sẽ chấp nhận bất kỳ byte nào.
OrangeDog

Câu trả lời:


91

Kiểm tra wiki này , đặc biệt là phần Hạn chế đối với tên máy chủ hợp lệ

Tên máy chủ bao gồm một loạt các nhãn được nối với các dấu chấm, cũng như tất cả các tên miền. Ví dụ: "en.wikipedia.org" là tên máy chủ. Mỗi nhãn phải dài từ 1 đến 63 ký tự và toàn bộ tên máy chủ (bao gồm cả dấu chấm phân cách nhưng không phải dấu chấm) có tối đa 253 ký tự ASCII.

Các tiêu chuẩn Internet (Yêu cầu nhận xét) cho các giao thức yêu cầu các nhãn tên máy chủ thành phần chỉ được chứa các chữ cái ASCII từ 'a' đến 'z' (theo cách phân biệt chữ hoa chữ thường), các chữ số từ '0' đến '9' và dấu gạch nối ('-'). Đặc điểm kỹ thuật ban đầu của tên máy chủ trong RFC 952 , bắt buộc các nhãn không được bắt đầu bằng chữ số hoặc bằng dấu gạch ngang và không được kết thúc bằng dấu gạch nối. Tuy nhiên, một thông số kỹ thuật tiếp theo ( RFC 1123 ) cho phép các nhãn tên máy chủ bắt đầu bằng các chữ số. Không cho phép các ký hiệu, ký tự dấu chấm câu hoặc khoảng trắng khác.


6
Hãy chắc chắn rằng bạn đang tìm kiếm một tên máy chủ hoặc một tên miền đủ điều kiện hoặc một trong hai.
Kevin Gross

Ngoài ra, hãy rõ ràng liệu bạn có đang tìm kiếm yêu cầu nghiêm ngặt về khả năng tương tác DNS hay không. Đặc biệt, DNS cấm dấu gạch dưới trong nhãn tên máy chủ, trong khi nhiều hệ điều hành cho phép chúng sử dụng cục bộ. Máy chủ DNS có xu hướng khoan dung và DNS hiện nay trên thực tế yêu cầu dấu gạch dưới trong một số loại bản ghi, chẳng hạn như bản ghi TXT (đối với DKIM, v.v.), không chỉ đối với nhãn tên máy chủ.
tripleee

26

Nó phụ thuộc vào việc bạn xử lý IDN trước hay sau toASCIIthuật toán IDN (nghĩa là bạn thấy tên miền παράδειγμα.δοκιμήbằng tiếng Hy Lạp hay bằng xn--hxajbheg2az3al.xn--jxalpdlp?).

Trong trường hợp thứ hai — khi bạn đang xử lý IDN thông qua punycode — các quy tắc RFC 1123 cũ được áp dụng:

Trường hợp U + 0041 đến U + 005A (AZ), U + 0061 đến U + 007A (az) gấp khúc như nhau, U + 0030 đến U + 0039 (0-9) và U + 002D (-).

và U + 002E (.) tất nhiên; các quy tắc cho nhãn cho phép các quy tắc khác, với dấu chấm giữa các nhãn.

Nếu bạn thấy nó ở dạng IDN, các ký tự được phép rất đa dạng, hãy xem http://unicode.org/reports/tr36/idn-chars.html để biết biểu đồ hữu ích về tất cả các ký tự hợp lệ.

Rất có thể mã mạng của bạn sẽ xử lý mã punycode, nhưng mã hiển thị của bạn (hoặc thậm chí chỉ truyền các chuỗi đến và từ các lớp khác) với dạng dễ đọc hơn con người vì không ai chạy máy chủ trên السعودية. miền muốn xem máy chủ của họ được liệt kê là đang bật .xn--mgberp4a5d4ar.


1
Chà, tôi thậm chí chưa từng thấy IDN và Ponycode! Tại thời điểm này, tôi chỉ định hỗ trợ tiếng Anh, vì đó chỉ là một dự án thú cưng của tôi, nhưng tôi chắc chắn đã học được điều gì đó từ câu trả lời của bạn!
Ricket

2
Điều tuyệt vời về cách thức hoạt động của punycode, là dưới một mức nhất định (mức mà bạn thực hiện kết nối mạng) thì tất cả đều là ASCII. Đó khá là một cách để giả vờ một công nghệ chỉ ASCII mới có thể hoạt động với văn bản khác (bao gồm một số từ tiếng Anh trước đây không được phép). Ngoài việc cung cấp toàn bộ từ một đường dẫn nâng cấp, nó cũng cung cấp cho bạn một đường dẫn: Xây dựng nó để làm như RFC 1123 nói và nếu sau này bạn thêm IDN hỗ trợ, mã mạng vẫn giữ nguyên và bạn thêm hỗ trợ cho RFC 3490 ở trên (các thư viện có sẵn bằng nhiều ngôn ngữ để trợ giúp).
Jon Hanna

2
@Ricket không biết là lỗi đánh máy hay bạn nói đùa về tên ("mã ponycode"). Cá nhân tôi gọi chúng là "chơi chữ".
Camilo Martin

4

"Tên" (Net, Host, Gateway hoặc Domain name) là một chuỗi văn bản có tối đa 24 ký tự được vẽ từ bảng chữ cái (AZ), các chữ số (0-9), dấu trừ (-) và dấu chấm (.). Lưu ý rằng dấu chấm chỉ được phép khi chúng dùng để phân tách các thành phần của "tên miền". (Xem RFC-921, "Lịch trình triển khai hệ thống tên miền", để biết thông tin cơ bản). Không có ký tự trống hoặc khoảng trắng nào được phép như một phần của tên. Không phân biệt chữ hoa và chữ thường. Ký tự đầu tiên phải là ký tự alpha. Ký tự cuối cùng không được là dấu trừ hoặc dấu chấm. Máy chủ lưu trữ dưới dạng GATEWAY phải có "-GATEWAY" hoặc "-GW" như một phần tên của nó. Các máy chủ không đóng vai trò là cổng Internet không được sử dụng "-GATEWAY" và "-GW" làm một phần tên của chúng. Máy chủ lưu trữ là TAC nên có "

Điều này được cung cấp trong http://support.microsoft.com/kb/149044


Điều này được trích dẫn nguyên văn từ RFC 952 [ tools.ietf.org/html/rfc952] . Nó gây hiểu lầm - tên máy chủ có thể dài từ 1 đến 63 ký tự, như đã nêu ở trên.
Craig S. Anderson

Liên kết bị hỏng, thật không may.
Cuộc gọi lại của Eugene Mayevski '

0

Nếu bạn đang đăng ký một miền và phần kết thúc (ví dụ .com) đó không phải là IDN, như Aaron Hathaway đã nói: Tên máy chủ bao gồm một loạt các nhãn được nối bằng dấu chấm, cũng như tất cả các tên miền. Ví dụ, en.wikipedia.orglà một tên máy chủ. Mỗi nhãn phải dài từ 1 đến 63 ký tự và toàn bộ tên máy chủ (bao gồm cả dấu chấm phân cách nhưng không phải dấu chấm) có tối đa 253 ký tự ASCII.

Các tiêu chuẩn Internet (Yêu cầu nhận xét) cho các giao thức bắt buộc các nhãn tên máy chủ thành phần chỉ được chứa các chữ cái ASCII athông qua z(theo cách phân biệt chữ hoa chữ thường), các chữ số 0qua 9và dấu gạch nối -. Đặc điểm kỹ thuật ban đầu của tên máy chủ trong RFC 952, bắt buộc các nhãn không được bắt đầu bằng chữ số hoặc bằng dấu gạch ngang và không được kết thúc bằng dấu gạch nối. Tuy nhiên, một thông số kỹ thuật tiếp theo (RFC 1123) cho phép các nhãn tên máy chủ bắt đầu bằng các chữ số. Không cho phép các ký hiệu, ký tự dấu chấm câu hoặc khoảng trắng khác.

Sau đó, Tây Ban Nha với nó .es, .com.es, .org.es, .nom,es, .gob.es.edu.esgiới thiệu tên miền cấp cao IDN, nếu TLD của bạn là một trong .eshoặc bất kỳ khác mà hỗ trợ nó, bất kỳ ký tự có thể được sử dụng, nhưng bạn không thể kết hợp bảng chữ cái như Latin, Hy Lạp hay Cyril trong một hostname, và nó tôn trọng những thứ không thể đi khi bắt đầu hoặc khi kết thúc.

Nếu bạn đang sử dụng các tld không được đăng ký, chỉ dành cho mạng cục bộ, như với DNS cục bộ hoặc với các tệp máy chủ, bạn có thể coi tất cả chúng là IDN.

Hãy nhớ rằng một số chương trình không thể hoạt động tốt, đặc biệt là những chương trình cũ, lỗi thời và không phổ biến.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.