一个方便的STUN客户端

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

猜你喜欢

转载自mysuperbaby.iteye.com/blog/901230