2

是否可以在管道或 cohttp 级别获取远程 IP 地址?我试过挖掘源代码,但它似乎被埋在几层抽象之下。我正在编写计划部署为 unikernel 的休息服务,并且记录请求者的 IP 地址是一项安全要求。

我正在使用 cohttp 并且希望能够在 unix(用于测试)和 xen(用于部署)中执行此操作。如有必要,我可以为这两个环境添加条件代码。

4

1 回答 1

3

将 cohttp 的自述文件中的示例修改为:

open Sexplib
[...]

  let callback (flow, _connection_id) req body =
    Conduit_lwt_unix.sexp_of_flow flow |> Sexp.to_string |> print_endline;

当我从本地主机连接时,它打印:

(TCP((fd <opaque>)(ip(V4 127.0.0.1))(port 62168)))

(弄清楚这一点并不太明显;我只是_conn将示例中的替换为()并遵循类型错误...)

于 2016-09-06T09:39:24.857 回答