【问题标题】:Get IP Address for a specific interface in OCaml获取 OCaml 中特定接口的 IP 地址
【发布时间】:2016-10-17 17:10:39
【问题描述】:

Core 库中有 Linux_ext.get_ipv4_address_for_interface 函数,它返回分配给特定网络接口的 IP 地址。有没有一种简单的方法可以只使用标准库而不用fork 来读取ifconfigip addr show 的内容?

【问题讨论】:

  • (我认为快速回答是否定的。基础 OCaml 语言没有内置这种低级网络 API。)

标签: linux ocaml ip-address nic


【解决方案1】:

OCaml 抽象机不包含网络接口的概念,因此在不依赖操作系统特定接口的情况下,不可能使用 OCaml 标准库的可移植部分实现此类行为。

事实上,这在 C 中甚至是不可能的。由于接口是内核特定的,所以为了编写这样的函数,你需要为每个 Unix 系统编写一个单独的实现,你计划定位。 For example,在 C 语言中您需要使用 ioctl 接口,并使用 Linux 内核特定的操作。

好消息是您仍然可以使用 OCaml 完成此操作。虽然 OCaml 不提供 ioctl 函数,但您仍然可以通过 C Types 外部函数接口或直接通过 writing a stub function 调用它。

【讨论】:

  • 对不起,我不是说Pervasive,而是指标准库的所有模块:没有外部库。我编辑我的问题。感谢您的回答
猜你喜欢
  • 1970-01-01
  • 2010-12-26
  • 2011-01-18
  • 2011-11-09
  • 2014-05-26
  • 2019-07-28
  • 2011-09-08
  • 1970-01-01
相关资源
最近更新 更多