我想了解如何通过C / C ++库检查防火墙是否打开/关闭。是否有一些图书馆用于此目的?谢谢。
答案 0 :(得分:3)
以下是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
并对其进行机器可读输出后处理。
答案 1 :(得分:2)
如果你真的想通过C程序这样做,那么这可能会解决你的目的:)
chk_fw()
{
const char * cmd = "service iptables status";
system(cmd);
}
输出:iptables: Firewall is not running.
答案 2 :(得分:1)
这需要检查iptables,并且没有可用的库。 " libiptc如何"可以使用,但它不适用于公共接口。