Можно ли получить удаленный IP-адрес в ocaml Cohttp или в кабелепроводе?
Можно ли получить удаленный IP-адрес на уровне канала или cohttp? Я пробовал копать хотя и исходный код, но, похоже, он скрыт под несколькими уровнями абстракции. Я пишу остальные службы, которые планирую развернуть как unikernels, и регистрация IP-адреса запрашивающей стороны является требованием безопасности.
Я использую cohttp и хотел бы иметь возможность сделать это как в Unix (для тестирования), так и в XEN (для развертывания). Я мог бы поставить условный код для двух сред при необходимости.
1 ответ
Я изменил пример в файле readme для cohttp:
open Sexplib
[...]
let callback (flow, _connection_id) req body =
Conduit_lwt_unix.sexp_of_flow flow |> Sexp.to_string |> print_endline;
Когда я подключился с localhost, он напечатал:
(TCP((fd <opaque>)(ip(V4 127.0.0.1))(port 62168)))
(выяснить это не слишком очевидно; я просто заменил _conn
в примере с ()
и следовал за ошибками типа...)