저는 PHP에서 이메일 인증 regex 작업을 하고 있는데, TLD가 얼마나 오래 유효할 수 있는지 알고 싶습니다.몇 가지 검색을 해봤지만 주제에 대한 정보를 많이 찾을 수 없었다.TLD는 얼마나 걸릴까요?
질문에 대한 답변
DNS 에서는, 개개의 라벨에 최대 63 문자를 사용할 수 있습니다.
현재 존재하는 가장 긴 TLD는 24자로 변경될 수 있습니다.RFC 1034에서 지정되어 있는TLD의 최대 길이는 63 옥텟입니다
가장 긴 기존 TLD 길이를 얻으려면 다음 절차를 수행합니다.
wget -qO - http://data.iana.org/TLD/tlds-alpha-by-domain.txt
tail -n+2
wc -L
이 명령어의 기능은 다음과 같습니다.
대체 사용법curl
Stefan 덕분입니다.
curl -s http://data.iana.org/TLD/tlds-alpha-by-domain.txt
tail -n+2
wc -L
-편집-
RFC 2606에 따르면 .localhost는 예약된 도메인 이름이며 길이는 9자입니다.그게 내가 아는 가장 긴 시간이야.
– 편집 종료-
단, TLD 길이뿐만 아니라 이메일 주소 길이도 신경써야 한다고 생각합니다.다음은 이 기사에서 인용한 내용입니다.이메일 주소의 길이는 254자입니다.
유효한 최대 전자 메일 주소 크기에 약간의 혼동이 있는 것 같습니다.대부분의 경우 320자(사용자 이름 64자+도메인 255자+@ 기호 1자)로 간주됩니다.그 외의 소스에서는, 129(64 + 1 + 64) 또는 384(향후 유저명의 길이가 2배로 증가하는 것을 전제로 한 128 + 1 + 255)를 제안하고 있습니다.
이 혼란은 이메일 주소를 다루는 소프트웨어를 작성할 때 ‘강성 원칙’에 유의해야 한다는 것을 의미합니다.「개발자는 기존의 RFC에 준거하지만, 그러한 RFC와 일치하지 않을 가능성이 있는 피어로부터의 입력을 받아 들여 해석해야 합니다.」- Wikipedia.또, 예를 들면 50자가 적당하다고 생각하는 등, 순진한 가정으로 인해 기능하지 않는 소프트웨어도 있습니다.200자 이메일 주소는 기술적으로 유효할 수 있지만 대부분의 웹 사이트나 응용 프로그램이 거부하면 도움이 되지 않습니다.
실제 최대 이메일 길이는 현재 254자입니다.
“RFC 3696의 원래 버전에서는 320이 최대 길이라고 되어 있었지만, 이후 존 클렌신(ICANN)은 이것이 잘못되었다고 인정했습니다.”
“이것은 도메인의 최대 길이(255자) + 우편함의 최대 길이(64자) + @ 기호 = 320자의 간단한 산술에서 발생합니다.틀렸습니다. 이 카나드는 원래 버전의 RFC3696에 기재되어 있습니다.그것은 에러타에서 정정되었다.실제로 RFC5321에서는 SMTP 트랜잭션의 경로 요소에 256자의 제한이 있습니다.그러나 여기에는 이메일 주소 주위에 각진 괄호가 포함되어 있기 때문에 이메일 주소의 최대 길이는 254자입니다.”
가장 긴 라틴 문자는 입니다.MUSEUAL(출처)이지만, 특수 문자를 사용한 것도 있습니다.가장 긴 것은 XN-CLCHC0EA0B2G2A9GCD입니다.또한 단기간에 자신의 TLD를 높은 가격에 예약할 수 있기 때문에 더 길어질 수 있습니다.
저는 .net 개발자이기 때문에 현재 사용 가능한 가장 긴 TLD를 결정하는 자바 스크립트 표현은 다음과 같습니다.RegEx에서 사용할 수 있는 가장 긴 TLD 길이가 반환됩니다.
다음 코드 스니펫을 사용해 보십시오.
function getTLD() {
var length = 0;
var longest;
var request = new XMLHttpRequest();
request.open('GET', 'http://data.iana.org/TLD/tlds-alpha-by-domain.txt', true);
request.send(null);
request.onreadystatechange = function () {
if (request.readyState === 4 && request.status === 200) {
var type = request.getResponseHeader('Content-Type');
if (type.indexOf("text") !== 1) {
var tldArr = request.responseText.split('n');
tldArr.splice(0, 1);
for (var i = 0; i < tldArr.length; i++) {
if (tldArr[i].length > length) {
length = tldArr[i].length;
longest = tldArr[i];
}
}
console.log("Longest >> " + longest + " >> " + length);
return length;
}
}
} }
<button onclick="getTLD()">Get TLD</button>