3 个版本 (破坏性更新)
0.2.0 | 2024年2月1日 |
---|---|
0.1.0 | 2024年1月27日 |
0.0.0 | 2023年11月22日 |
在 嵌入式开发 中排名 2020
每月下载 81 次
用于 edge-net
10KB
代码行数 202 行(不包括注释)
edge-captive
异步 + 无 std
+ 无分配实现 Captive Portal DNS(即解析每个域名到固定 IP 地址的 DNS 服务器)。
该实现基于出色的 domain 库。
有关其他协议,请参阅 edge-net 聚合软件包的文档。
示例
use core::time::Duration;
use edge_captive::io::run;
use embedded_nal_async::{IpAddr, Ipv4Addr, SocketAddr};
use log::*;
fn main() {
env_logger::init_from_env(
env_logger::Env::default().filter_or(env_logger::DEFAULT_FILTER_ENV, "info"),
);
let stack = edge_std_nal_async::Stack::new();
let mut tx_buf = [0; 1500];
let mut rx_buf = [0; 1500];
info!("Running Captive Portal DNS on UDP port 8853...");
futures_lite::future::block_on(run(
&stack,
// Can't use DEFAULT_SOCKET because it uses DNS port 53 which needs root
SocketAddr::new(IpAddr::V4(Ipv4Addr::UNSPECIFIED), 8853),
&mut tx_buf,
&mut rx_buf,
Ipv4Addr::new(192, 168, 0, 1),
Duration::from_secs(60),
))
.unwrap();
}
依赖项
约 4MB
约 78K SLoC