2010-08-19 33 views
52

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

Để đặt trong ngữ cảnh, tôi đang viết trò chơi PC kết nối với 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 phải biết tất cả các ký tự hostname có thể là gì (và bất kỳ mẫu nào khác có thể được yêu cầu - một tên máy chủ có cần phải bắt đầu bằng một chữ cái không?).

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

+2

Các linux [sethostname] (http://linux.die.net/man/2/sethostname) lệnh sẽ chấp nhận bất kỳ byte. – OrangeDog

Trả lời

57

Thanh toán wiki này, đặc biệt là phần Hạn chế về tên máy chủ hợp lệ

Hostname được cấu tạo của hàng loạt các nhãn nối với 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 dấu chấm phân tách nhưng không phải dấu chấm) có tối đa 253 ký tự ASCII.

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

+2

Đảm bảo bạn rõ ràng về việc bạn đang tìm kiếm tên máy chủ hay tên miền đủ điều kiện hoặc một trong hai. –

17

Tùy thuộc vào việc bạn xử lý IDN trước hoặc sau thuật toán toASCII IDN. (Có nghĩa là, bạn có thấy tên miền παράδειγμα.δοκιμή như παράδειγμα.δοκιμή hoặc như xn--hxajbheg2az3al.xn--jxalpdlp

Trong trường hợp sau - nơi bạn đang xử lý IDNs qua punycode, sau đó RFC cũ 1123 quy tắc áp dụng:

U + 0041 thông qua Trường hợp U + 005A (AZ), U + 0061 đến U + 007A (az) được gấp lại thành nhau, U + 0030 đến U + 0039 (0-9) và U + 002D (-). [Sửa: và U + 002E (.) Tất nhiên, các quy tắc cho nhãn cho phép người khác, với dấu chấm giữa các nhãn, đôi khi đó là các bit rõ ràng dễ quên nhất]

Nếu bạn nhìn thấy nó ở dạng IDN, các ký tự được cho phép rất đa dạng, xem http://unicode.org/reports/tr36/idn-chars.html để biết han dy biểu đồ của 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 biểu mẫu dễ đọc hơn vì không ai chạy máy chủ trên السعودية. tên miền muốn xem máy chủ của họ được liệt kê là .xn - mgberp4a5d4ar

+0

Chà, tôi chưa từng thấy IDN và Ponycode! Tại thời điểm này tôi đang lên kế hoạch chỉ để hỗ trợ tiếng Anh, vì nó 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

+1

Những đ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ột trong những nơi bạn làm các mạng) đó là tất cả ASCII. Nó là khá nhiều một cách để giả vờ một công nghệ chỉ ASCII có thể làm việc 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). Cũng như cho toàn bộ từ một con đường nâng cấp, nó cũng cung cấp cho bạn một: Xây dựng nó để chỉ 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 như cũ và bạn thêm hỗ trợ cho RFC 3490 trên đầu trang (các thư viện có sẵn bằng nhiều ngôn ngữ để giúp bạn). –

+0

@Ricket không biết nếu lỗi đánh máy hoặc nếu bạn nói đùa về tên ("ponycode"). Tôi gọi chúng là "punyshed", cá nhân. –

2

"Tên" (Net, Máy chủ, Cổng hoặc Tên miền) là chuỗi văn bản tối đa 24 ký tự được vẽ từ bảng chữ cái (AZ), chữ số (0-9), dấu trừ (-) và dấu chấm (.). Lưu ý rằng các khoảng thời gian chỉ được phép khi chúng phân phối để phân định các thành phần của "tên kiểu tên miền". (Xem RFC-921, "Lịch thi hành Hệ thống Tên miền", cho nền). Không cho phép ký tự trống hoặc dấu cách như một phần của tên. Không phân biệt được giữa trường hợp trên và dưới. 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ột máy chủ lưu trữ dưới dạng GATEWAY phải có "-GATEWAY" hoặc "-GW" như một phần của tên của nó. Các máy chủ không hoạt động như cổng Internet không được sử dụng "-GATEWAY" và "-GW" như một phần của tên của chúng.Một máy chủ mà là một TAC nên có "-TAC" như là phần cuối của tên máy chủ của nó, nếu nó là một máy chủ DoD. Không được phép sử dụng tên hoặc biệt hiệu của một ký tự đơn lẻ.

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

Các vấn đề liên quan