永远在线的STUN服务器列表:Always Online: STUN Servers

永远在线的STUN服务器列表:Always Online: STUN Servers

在进行实时通信和网络传输时,STUN(简单Traversal of User Datagram Protocol Through Network Address Translators)服务器是解决NAT(网络地址转换)问题的关键工具。现在,我们有一个精心维护并定时更新的STUN服务器列表——Always Online: STUN Servers,它将为你的应用程序提供可靠的连接支持。

项目介绍

总是在线的STUN服务器是一个小时级刷新的公共STUN服务器列表。这个项目的目标是提供一个稳定且不断更新的资源,确保你的应用始终能够找到可用的STUN服务进行网络穿透。

项目技术分析

项目通过自动化脚本定期检查每个STUN服务器,判断其是否对RFC5389的BINDING请求作出响应。只有成功响应的服务器才会被纳入最终的列表中。列表包括IPv4和IPv6地址,并且分别提供了对应的URL,供直接硬编码到你的应用中。

此外,为了防止滥用,服务器列表会每次刷新时进行随机排序,这样可以分散流量,避免单一服务器过载。

项目及技术应用场景

  • 实时音视频通话应用,如WebRTC。
  • 在NAT环境下的P2P文件共享服务。
  • 需要穿越NAT的游戏服务器。
  • 任何依赖UDP或TCP进行网络通信但受NAT阻碍的应用。

项目特点

  1. 持续更新:每小时自动刷新,确保提供的都是在线服务器。
  2. 易于集成:提供固定的文本文件链接,可直接硬编码至你的应用代码中。
  3. 多样化的IP版本:支持IPv4和IPv6两种地址类型。
  4. 负载均衡:通过列表随机排序,减少特定服务器的压力。
  5. 灵活的贡献机制:如果你有其他公开的STUN服务器,可以通过PR或Issue添加到列表中。

示例代码:JavaScript集成

以下是使用JavaScript结合Geolocation选择最近的STUN服务器的示例:

// 获取地理位置信息
const GEO_LOC_URL = "https://raw.githubusercontent.com/pradt2/always-online-stun/master/geoip_cache.txt";
// 获取IPv4 STUN服务器列表
const IPV4_URL = "https://raw.githubusercontent.com/pradt2/always-online-stun/master/valid_ipv4s.txt";

// ...获取经纬度代码...

// 获取最接近的STUN服务器
const closestAddr = (await fetch(IPV4_URL).text())
    .trim()
    .split('\n')
    .map(parseServer)
    .reduce(findClosest)[0];

// 打印最近的STUN服务器
console.log(closestAddr);

// 辅助函数
function parseServer(addr) {
    // ...
}

function findClosest([prev, prevDist], [curr, currDist]) {
    // ...
}

对于依赖高效、可靠网络连接的开发者来说,Always Online: STUN Servers是一个不可或缺的资源。立即集成并提升你的应用性能吧!

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

裴辰垚Simone

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值