以编程方式启用/禁用 UNIX 网络接口

Ben*_*ird 5 c unix posix network-programming

发布了很多非常相似的问题,但它们都是针对 Windows 的 - 我想知道如何(如果可能)我可以让我的 C 程序(以 root 身份运行,在 linux 上)禁用网络接口,以便它不再接收任何数据包。

如果有人能告诉我我需要什么功能来执行此操作,那就太好了,但是如果您可以将我链接到某个地方的示例脚本或教程(示例 gratia)关闭并再次打开网络接口,那就更好了。

NPE*_*NPE 5

没有完整的示例,但以下关键字应该可以帮助您入门(至少在 Linux 上,不确定其他版本的 Unix):

ioctl、SIOCSIFFLAGS、IFF_UP

就显示相关 API 而言,以下内容可能有用:http://www.google.com/codesearch/p? hl=en#2--Ws53NXRc/src/ifdown.c


Kar*_*ldt 1

在 Linux 上,您可以使用ifdown。我不知道它对于其他 UNIX 的移植性如何。

  • 那是一个程序 - 有 C API 吗? (2认同)