我想了解如何通过C / C ++库检查防火墙是否打开/closures。 有这样的图书馆吗? 谢谢。
以下是iptables
使用的内容:
$ ldd /sbin/iptables linux-vdso.so.1 => (0x00007fffa69fe000) libip4tc.so.0 => /lib/libip4tc.so.0 (0x00007fe53853c000) libip6tc.so.0 => /lib/libip6tc.so.0 (0x00007fe538334000) libxtables.so.7 => /lib/libxtables.so.7 (0x00007fe538127000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe537d67000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe537b63000) /lib64/ld-linux-x86-64.so.2 (0x00007fe53875d000)
正如你所看到的,这是libip4tc
, lipip6tc
和libxtables
。 但是,它们对于外部接口并不好。 我建议你调用iptables-save
和后处理机器可读的输出。
如果你真的想通过C程序来做到这一点,那么这可能会解决你的目的:)
chk_fw() { const char * cmd = "service iptables status"; system(cmd); }
输出: iptables: Firewall is not running.
这需要对iptables进行检查,并且没有可用的库。 可以使用“libiptc”,但不适用于公共接口。