저는 우리 코드 월드의 모든 기사를 업데이트하려고 합니다만, 블로그나 그 외의 일을 하고 있기 때문에, 24시간 365일 갱신할 수 없을지도 모릅니다.지금까지의 리스트는 정상적으로 동작하고 있었습니다만, 발행 후 몇 달 또는 몇 년 후에 이 리스트를 읽고, 최종 갱신일이 너무 오래된 경우는, 서버가 스스로 정상적으로 동작하고 있는지를 테스트하고, 어느 것을 사용할지를 결정할 수 있습니다.이 목록은 목록 내의 항목과 같은 STUN 주소가 도달 가능한지 여부를 확인하기 위해 작성한 다음 스크립트를 사용하여 검증되었습니다.
주의: 만약myIpAddress는 빈 문자열입니다.주소는 도달할 수 있었지만, STUN 서버 기능은 실패했을 가능성이 있습니다.
/**
* Helper method to check if a STUN address is reachable.
*
* @param address The Domain and port of the STUN server.
* @param _timeout The connection timeout (Limit when the connection takes too long). By default is 6 seconds.
* @returns
*/
function isStunAddressUp(address, _timeout){
_timeout = _timeout || 6000;
let response = {
myIpAddress: "",
stun: address,
ipv6Supported: true,
errors: []
};
let checker = new Promise((resolve, reject) => {
const pc = new RTCPeerConnection({
iceServers: [
{urls: `stun:${address}?transport=udp`}
]
});
pc.onicecandidate = (e) => {
if (!e.candidate) return;
// If a srflx candidate was found, notify that the STUN server works and provide the IP
if(e.candidate.type == "srflx"){
response.myIpAddress = e.candidate.address;
pc.close();
}
};
// Log errors:
// Remember that in most of the cases, even if its working, you will find a STUN host lookup received error
// Chrome tried to look up the IPv6 DNS record for server and got an error in that process. However, it may still be accessible through the IPv4 address
pc.onicecandidateerror = (e) => {
if(e.address == "[0:0:0:x:x:x:x:x]"){
response.ipv6Supported = false;
}
response.errors.push(e);
};
pc.onclose = function () {
console.log("datachannel close");
};
var dc = pc.createDataChannel('ourcodeworld-rocks');
pc.createOffer().then(offer => pc.setLocalDescription(offer));
dc.onclose = function (e) {
resolve(response);
};
});
let timeout = new Promise(function(resolve, reject){
setTimeout(function() {
reject(response);
}, _timeout);
});
return Promise.race([checker, timeout]);
}
이 방법은 매우 간단하고 훌륭합니다.첫 번째 인수로 포트와 함께 STUN 서버의 도메인 또는 IP 주소를 지정하고 두 번째 인수로 요청이 성공할 때까지의 제한 시간(타임아웃)을 지정하기만 하면 됩니다.보통 성공적인 요청에는 단 1초도 걸리지 않습니다. 따라서 요청 성공 시간을 늘려야 하는 경우 서버 또는 연결에 문제가 있습니다.
isStunAddressUp("stun.ipfire.org:3478", 5000).then(function(result){
console.log(result);
// `result` Should contain an object like this:
//{
// "myIpAddress": "[::ffff:xxx.xxx.xx.xx]",
// "stun": "stun.ipfire.org:3478",
// "ipv6Supported": true,
// "errors": []
//}
}).catch(function(err){
// Something went wrong
console.log(err);
});
보시는 바와 같이 이 메서드는 STUN 서버에서 해결된 IP 주소를 반환하고 IPV6를 지원하는지 여부를 확인합니다.
IPV6 지원 확인 목록
어느 STUN 주소가 IPV6 를 서포트하고 있는지를 알기 위해서, 필요한 정보를 포함한 JSON 오브젝트를 인쇄하는 다음의 스크립트를 작성했습니다.
let serversToTest = [
// ...
"numb.viagenie.ca:3478",
// ...
];
async function TestServers(servers){
let results = {
servers: [],
details: []
};
for(let i = 0; i < servers.length;i++){
let server = servers[i];
console.log(`== Testing: ${server}:`);
try{
let result = await isStunAddressUp(server, 5000);
console.log('%c Server functional! ', 'background: #222; color: #02ff00');
if(result.myIpAddress){
results.servers.push(server);
results.details.push({
STUNAddress: server,
ipv6Supported: result.ipv6Supported,
lastTest: new Date().toDateString()
});
}
}catch(e){
if(e == "timeout"){
console.log('%c STUN Server connection timeout! ', 'background: #222; color: #ff0000');
return;
}
console.log('%c STUN Server unreachable! ', 'background: #222; color: #ff0000');
}
console.log(`======================`);
}
console.log(JSON.stringify(results, null, 4));
}
TestServers(serversToTest);
그 결과, 기능하는 서버의 리스트가 다음과 같이 출력되었습니다.
[
{
"STUNAddress": "iphone-stun.strato-iphone.de:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "numb.viagenie.ca:3478",
"ipv6Supported": true,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.12connect.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.12voip.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.1und1.de:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.3cx.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.acrobits.cz:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.actionvoip.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.advfn.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.altar.com.pl:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.antisip.com:3478",
"ipv6Supported": true,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.avigora.fr:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.bluesip.net:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.cablenet-as.net:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.callromania.ro:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.callwithus.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.cheapvoip.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.cloopen.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.commpeak.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.cope.es:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.counterpath.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.counterpath.net:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.dcalling.de:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.demos.ru:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.dus.net:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.easycall.pl:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.easyvoip.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.ekiga.net:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.epygi.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.etoilediese.fr:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.faktortel.com.au:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.freecall.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.freeswitch.org:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.freevoipdeal.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.gmx.de:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.gmx.net:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.halonet.pl:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.hoiio.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.hosteurope.de:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.infra.net:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.internetcalls.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.intervoip.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.ipfire.org:3478",
"ipv6Supported": true,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.ippi.fr:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.ipshka.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.it1.hr:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.ivao.aero:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.jumblo.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.justvoip.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.l.google.com:19302",
"ipv6Supported": true,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.linphone.org:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.liveo.fr:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.lowratevoip.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.lundimatin.fr:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.mit.de:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.miwifi.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.modulus.gr:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.myvoiptraffic.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.netappel.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.netgsm.com.tr:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.nfon.net:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.nonoh.net:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.nottingham.ac.uk:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.ooma.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.ozekiphone.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.pjsip.org:3478",
"ipv6Supported": true,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.poivy.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.powervoip.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.ppdi.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.qq.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.rackco.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.rockenstein.de:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.rolmail.net:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.rynga.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.schlund.de:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.sigmavoip.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.sip.us:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.sipdiscount.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.sipgate.net:10000",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.sipgate.net:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.siplogin.de:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.sipnet.net:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.sipnet.ru:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.sippeer.dk:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.siptraffic.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.sma.de:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.smartvoip.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.smsdiscount.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.solcon.nl:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.solnet.ch:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.sonetel.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.sonetel.net:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.sovtest.ru:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.srce.hr:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.stunprotocol.org:3478",
"ipv6Supported": true,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.t-online.de:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.tel.lu:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.telbo.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.tng.de:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.twt.it:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.uls.co.za:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.unseen.is:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.usfamily.net:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.viva.gr:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.vivox.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.vo.lu:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voicetrading.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voip.aebc.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voip.blackberry.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voip.eutelia.it:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voipblast.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voipbuster.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voipbusterpro.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voipcheap.co.uk:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voipcheap.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voipgain.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voipgate.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voipinfocenter.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voipplanet.nl:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voippro.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voipraider.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voipstunt.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voipwise.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voipzoom.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voys.nl:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.voztele.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.webcalldirect.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.wifirst.net:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.xtratelecom.es:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun.zadarma.com:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun1.faktortel.com.au:3478",
"ipv6Supported": false,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun1.l.google.com:19302",
"ipv6Supported": true,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun2.l.google.com:19302",
"ipv6Supported": true,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun3.l.google.com:19302",
"ipv6Supported": true,
"lastTest": "Thu Jul 01 2021"
},
{
"STUNAddress": "stun4.l.google.com:19302",
"ipv6Supported": true,
"lastTest": "Thu Jul 01 2021"
}
]
다른 퍼블릭 STUN 서버 주소를 알고 있는 경우는, 코멘트 박스에서 커뮤니티와 공유해 주세요.리스트를 갱신할 수 있습니다.
'Study > WEBRTC' 카테고리의 다른 글
Coturn으로 STUN, TURN Server를 구축하는 방법 (0) | 2022.06.27 |
---|---|
Turn Server가 무료로 제공되지 않는 이유 (1) | 2022.06.27 |
Public Stun Server List (0) | 2022.06.24 |
Stun Servers and Friends (0) | 2022.06.24 |
Public Stun Turn Server (0) | 2022.06.24 |