pystun
A python STUN client for getting NAT type, followed RFC 3489.
http://code.google.com/p/pystun/
学习XMPP Jingle,需要对STUN协议有个大概的了解.
STUN协议简单的理解是位于NAT或者防火墙后面的STUN客户端首先访问具有公网IP地址的STUN服务器,这样STUN服务器就会知道STUN客户端被NAT之后的公网IP地址和端口,然后STUN服务器会把这个信息返回给STUN客户端.
这个工具使用很方便直观,安装python后,然后运行stun_client_0.0.1.py,默认会连接public的STUN服务器 "stun.ekiga.net",输出如下:
从上面可以看出STUB客户端已经知道了我通过ADSL拨号获得的公网IP地址. 访问我的无线路由器,查看WAN口的IP地址,可以发现和STUN客户端所获得的IP地址一样:
可用的STUN服务器有:
* stun.ekiga.net
* stun.fwdnet.net
* stun.ideasip.com
* stun01.sipphone.com (no DNS SRV record)
* stun.softjoys.com (no DNS SRV record)
* stun.voipbuster.com (no DNS SRV record)
* stun.voxgratia.org (no DNS SRV record)
* stun.xten.com
* stunserver.org see their usage policy
* stun.sipgate.net:10000
如果哪个访问不了,可以修改代码来访问别的STUB服务器.
下面的链接有一些不错的信息可以参考:
http://www.voip-info.org/wiki/view/STUN
- 大小: 60.9 KB
- 大小: 15.8 KB
分享到:
相关推荐
2. **创建客户端**:使用`stun.NewClient()`创建一个STUN客户端实例。 3. **发送请求**:调用`client.DoTransaction()`方法发送STUN绑定请求到指定服务器。 4. **接收响应**:处理返回的响应,从中获取客户端的公网...
Java中的"stun4j"库是一个用于STUN和TURN(Traversal Using Relays around NAT)服务的客户端库,提供了处理NAT穿透所需的基本功能。开发者可以使用stun4j来创建STUN请求,解析响应,从而获取到必要的网络信息。 ...
这个工具可能包括一个STUN客户端,它会发送请求到STUN服务器,并接收包含其公共IP和端口信息的响应。通过这种方式,用户可以检查他们的设备是否被NAT阻隔,以及如何配置应用程序以正确地进行通信。 提到的博文链接...
- **API接口**:方便其他应用集成STUN客户端功能。 - **示例代码**:展示如何使用SDK进行基本操作,如初始化、发送请求、处理响应等。 - **文档**:详细说明如何使用SDK,包括配置、编译、错误处理等。 - **测试工具...
源代码中的"stunclientdemo"很可能是实现STUN客户端功能的示例程序。这个客户端通常会执行以下步骤: 1. **连接到STUN服务器**:客户端首先需要找到一个公开的STUN服务器,并建立TCP或UDP连接。 2. **发送Binding...
**STUN(Session Traversal Utilities for NAT,NAT穿越会话工具)协议是网络通信领域中的一个重要技术,它主要用于解决因网络地址转换(NAT,Network Address Translation)引起的通信问题。RFC5389是定义STUN协议...
在这个场景中,Janus 是一个流行的WebRTC服务器,它是一个可扩展的多功能网关,用于处理各种实时通信场景,如语音和视频会议、一对一通话、多对多聊天等。 Janus WebRTC 服务器具有以下关键特点: 1. **插件架构**...
1. **请求与响应**:STUN客户端向STUN服务器发送请求报文,请求报文中包含了客户端的私网IP和端口。服务器接收到请求后,将这个信息返回给客户端,作为响应报文的一部分。 2. **公网映射检测**:当客户端收到响应...
2. **跟踪器(Tracker)**:虽然P2P网络不需要中心服务器,但为了方便节点间的发现和连接,通常会有一个或多个跟踪器服务器。节点在加入网络时,会向跟踪器注册,并获取其他活跃节点的信息。 3. **哈希表(Hash ...
Go-gopeed支持HTTP协议意味着它可以作为一个标准的HTTP客户端,通过发起HTTP请求来下载网络资源,这在处理常规网页链接下载时非常方便。 2. **BitTorrent协议**: BitTorrent是一种对等网络文件分享协议,特别适用于...
6. **服务器角色**:虽然P2P网络强调去中心化,但在初期启动阶段,可能需要一个中心服务器来帮助节点发现彼此。这个“服务器”在源码中可能作为一个辅助角色存在。 7. **客户端实现**:客户端代码负责连接到网络,...
标题提到的是一个基于PHP实现的内网穿透客户端源码,无需额外扩展,简化了使用过程。 在描述中提到了"纯php开发 简洁",这意味着这个内网穿透工具是用PHP语言编写的,并且设计简洁,易于理解和部署。PHP是一种广泛...
标题中的“holer-client-v1.0_holer下载_内网穿透_”表明这是一个名为"Holer"的客户端软件,版本为v1.0,主要用于实现内网穿透功能。内网穿透,也称为NAT穿透,是一种网络技术,允许内网中的设备通过公网访问或被...
标题"RFC3489.zip_RFC3489"中,"RFC3489"是互联网请求评论(Request for Comments)文档的一个编号,这是一种技术规范,通常由互联网工程任务组(IETF)发布。这里提到的".zip"表明这个文档被压缩在了一个ZIP文件中...
服务器会发送一个带有其IP和端口信息的特殊消息给客户端,客户端收到后将这个信息传递给它的NAT设备,请求NAT为特定的外部IP和端口建立一条通道。一旦通道建立,两个客户端就可以直接通过UDP交换数据,而不必通过...
NAT(Network Address Translation)是互联网中的一个重要技术,用于解决IP地址短缺问题,但它会阻碍P2P通信,因为同一内网的设备对外显示相同的公共IP。 NAT穿透,又称为端口映射或打洞,是为了使两个处于NAT后的...
DOL(可能是“Digital Operation Logic”或类似缩写)可能是一个特定的软件平台,用于企业的运营或数据管理。通过此工具集,用户可以方便地进行配置、更新、监控和故障排查,确保DOL客户端的稳定运行。 2. **清除IE...
2. **STUN服务器**:STUN(简单Traversal of NAT)服务器是一个公开的网络服务,可以提供内网设备的公网映射信息。设备向STUN服务器发送请求,服务器会返回设备在NAT后的公网IP和端口,然后设备可以使用这些信息来...
SipClient是一个专为开发和测试SIP应用程序设计的客户端工具。这个项目是用Java语言编写的,Java作为一种跨平台且功能强大的编程语言,非常适合构建网络通信应用。 在SipClient中,开发者可以利用它来实现以下关键...
4. 接受连接:accept()函数接收客户端的连接请求,并创建一个新的套接字用于与客户端通信。 客户端的实现主要包括: 1. 创建套接字:同样使用socket()函数创建套接字。 2. 连接:connect()函数尝试连接到服务器的...