#stun #p2p #nat #udp

stun-client

这是一个简单的基于async_std的异步STUN客户端库

4个版本

0.1.4 2023年7月17日
0.1.2 2021年5月28日
0.1.1 2021年5月10日
0.1.0 2021年5月3日

#1503 in 异步

每月 38 次下载

MIT 许可证

37KB
748

test

stun-client

这是一个简单的基于async_std的异步STUN客户端库。目前仅实现了RFC8489的一些功能,并且只支持简单的绑定请求。

它还支持基于RFC5780的NAT行为发现中的OTHER-ADDRESS和CHANGE-REQUEST属性。

安装

文档

示例


lib.rs:

这是一个简单的基于async_std的异步STUN客户端库。目前仅实现了RFC8489的一些功能,并且只支持简单的绑定请求。

它还支持基于RFC5780的NAT行为发现中的OTHER-ADDRESS和CHANGE-REQUEST属性

示例

use async_std::task;
use stun_client::*;

task::block_on(async {
    let mut client = Client::new("0.0.0.0:0", None).await.unwrap();
    let res = client
        .binding_request("stun.l.google.com:19302", None)
        .await
        .unwrap();
    let class = res.get_class();
    match class {
        Class::SuccessResponse => {
            let xor_mapped_addr = Attribute::get_xor_mapped_address(&res);
            println!("XOR-MAPPED-ADDRESS: {}", xor_mapped_addr.unwrap());
        },
        _ => panic!("error"),
    }
});

依赖项

~8–19MB
~265K SLoC