dcompass icon indicating copy to clipboard operation
dcompass copied to clipboard

如何获取请求中的 Client Subnet?

Open killbus opened this issue 1 year ago • 1 comments

version: build-20230216_1021

不懂 rust,一边读源码一边问 chatbots,没头绪了。

以下是一些不成熟的尝试:

    let client_subnet = ClientSubnet::new(u8(15), u8(0), IpAddr::from_str("23.62.93.233")?);
    println(client_subnet.addr.to_str());
    ////query.push_opt(client_subnet.to_opt_data())?;
    //if let AllOptData::ClientSubnet(subnet) = client_subnet.to_opt_data() {
    //  dbg(subnet);
    //}
    let opt_records = query.options?;
    for opt in opt_records.into_iter() {
      dbg(opt);
      //if let AllOptData::ClientSubnet(subnet) = opt {
      //  dbg(subnet);
      //}
    }

killbus avatar Mar 17 '24 06:03 killbus

我最近几个月很忙,可能暂时不能给你完整的代码,我抽空会回复你。

你可以看一下 domain 这个 rust 库的相关 type (AllOptData 等) 的方法,因为在这里所有的方法几乎都是还原了这个库的。你也可以看看 runescript 的文档,我不太确定能不能做 if let 这样的模式匹配

我实现的相关的代码在 https://github.com/compassd/dcompass/tree/main/droute/src/router/script/rune_scripting

LEXUGE avatar Mar 17 '24 08:03 LEXUGE