TLD는 얼마나 걸릴 수 있습니까?
저는 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
스테판 ★★★★★★★★★★★★★★★」
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>
은 것은입니다.PHP
get separated (최신 수직바 구분 코드)UTF-8
TLD:
<?php
function getTLDs($separator){
$tlds=file('http://data.iana.org/TLD/tlds-alpha-by-domain.txt');
array_shift($tlds); // remove heading comment
usort($tlds,function($a,$b){ return strlen($b)-strlen($a); }); // sort from longest to shortest
return implode($separator,array_map(function($e){ return idn_to_utf8(trim(strtolower($e))); },$tlds));
}
echo getTLDs('|');
?>
호스트명을 대조하려면 , 다음과 같이 사용합니다.
$tlds=getTLDs('|');
if (preg_match("{([\da-z\.-]+)\.($tlds)}u",$address)) {
..
}
TLD에는 임의의 길이를 지정할 수 있습니다.새로운 TLD는 항상 발생합니다.미래에는 현재 대다수의 TLD를 규제하는 기업이 규제하지 않는 TLD가 더 많아질 것이다.앞으로도 메일은 현재와 같이 사용하지 않을 것입니다.라고 하는 것은, 다음과 같습니다.
이메일 주소의 유효성을 확인할 필요가 없습니다.사람의 속도를 늦추고 싶은 경우 CAPTCHA를 포함시켜 실제 인간인지 아닌지에 대한 생각을 가질 수 있습니다.작동 중인 이메일을 확인해야 하는 경우 열 수 있는 확인 링크가 포함된 이메일을 보냅니다.검증용으로 송신되는 전자 메일과 같은 것을 생성할 수 있는 송신물을 억제하지 않는 경우, 그 주소가 기술적으로 유효한지를 확인하는 것은 문제가 되지 않습니다.그 시점에서는, 그 주소가 어떠한 경우에도 악용됩니다.
현재까지 가장 긴 TLD는 .xn--vermgensberatung-pwb이며, Punycode에서는 24자, 디코딩에서는 17자입니다.[ vermögensberatungPunycode가 없으면 .western mutual 또는 .travelers insurance 둘 다 18글자가 됩니다.
다만, 도메인명(TLD 앞에 붙는 것)은, http://www.thelongestdomainnameintheworldandthensomeandthensomemoreandmore.com 와 같이 최대 63 문자까지 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/9238640/how-long-can-a-tld-possibly-be
'programing' 카테고리의 다른 글
Object.entries가 아닌 오브젝트에 대해 반복할 수 있는 올바른 방법 (0) | 2023.02.23 |
---|---|
Python의 목록 메서드 append와 extend의 차이점은 무엇입니까? (0) | 2023.01.28 |
리소스 예약 패턴의 잠금 및 분리 (0) | 2023.01.28 |
mysqldb python 인터페이스를 설치할 때 mysql_config를 찾을 수 없습니다. (0) | 2023.01.28 |
인쇄문이 없으면 루프가 다른 스레드에 의해 변경된 값을 볼 수 없습니다. (0) | 2023.01.28 |