我需要安装啥软件包才能使用路由套接字?

Posted

技术标签:

【中文标题】我需要安装啥软件包才能使用路由套接字?【英文标题】:What package do i need to install for using routing sockets?我需要安装什么软件包才能使用路由套接字? 【发布时间】:2010-12-03 23:41:58 【问题描述】:

我正在尝试 Richard Stevens 在 Unix Network Programming 中给出的代码。但我无法编译代码。

这里是源代码。 http://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15213-f00/unpv12e/libroute/

我没有头文件 net/if_dl.h 并且 net/route.h 头文件不包含代码使用的常量和结构。

【问题讨论】:

你有没有 grepped 查看常量是否在不同的头文件中?可能是过去 8 年才搬家。 【参考方案1】:

请注意,您不需要在该文件夹中创建“libroute”

查看文档:

cd ../libroute # only if your system supports 4.4BSD style routing sockets
make           # only if your system supports 4.4BSD style routing sockets

cd ../libxti   # only if your system supports XTI
make           # only if your system supports XTI

Linux 不是 BSD 风格的路由,直接去 ../intro 构建示例吧~!

【讨论】:

【参考方案2】:

这是一个 BSD 特定的 API,Linux 不支持它。这 等效功能(不兼容源)由 netlink 套接字系列。 “man 7 netlink”应该让你开始,但是 你可能需要做一些移植工作。

【讨论】:

【参考方案3】:

我现在不在可以执行此操作的机器上,但也许我仍然可以提供帮助。如果您的发行版使用 yum(例如 RHEL):

yum provides if_dl.h

或者如果您使用apt(例如 Ubuntu/Debian):

sudo apt-get install apt-file
sudo apt-file update
apt-file search if_dl.h

如果已经安装了apt-file,那么第一步就不需要了,我不记得是不是第二步了。另外,我相信这两个包管理器都可以使用文件名和完整路径。

希望这对您或其他阅读本文的人有用,您会得到答案!

【讨论】:

【参考方案4】:

如https://ubuntu.pkgs.org/16.04/ubuntu-universe-amd64/freebsd-glue_0.2.20_amd64.deb.html 中所述 只需安装 freebsd-glue deb 包:

sudo apt-get install freebsd-glue

【讨论】:

【参考方案5】:

尝试从 net 复制 if_dl.h ,并将其放入 /usr/include/net 。 也许它可以工作,也许它需要其他库。 也许我的英语不太好。原谅我。

【讨论】:

您应该首先在您的环境中重现问题并提供具体的解决方案,而不是“尝试/可能”的答案。 *** 不是一个讨论论坛。这是一个问答网站,因此在发布之前应全面检查您的答案。

以上是关于我需要安装啥软件包才能使用路由套接字?的主要内容,如果未能解决你的问题,请参考以下文章

软件需要java环境啥意思

无线网络测速结果不太理想,是啥问题?

要安装啥软件才能看PNG格式的图片?

爱快硬路由和软路由系统有啥区别

怎么制作软路由

用啥软件可以打开路由器上备份的配置文件后缀bin文件?