如果一个程序在 Linux 机器上运行,该程序有没有办法扫描允许通过防火墙的端口?例如,如果程序员想要创建一个聊天系统,但程序需要知道哪些端口没有被用户的防火墙拒绝访问传入连接,有没有办法在你的代码中检查这一点?即使防火墙阻止了同一端口的传入连接,程序也可能无法将套接字绑定到端口。有没有办法检查开放的防火墙端口?
旁注:这纯粹是出于教育目的,没有恶意,要明确我正在编写一个聊天系统,并且在测试期间,我无法连接桌面 - >笔记本电脑,直到我通过允许它通过我的防火墙手动打开一个端口。这对我来说似乎有点不对劲,不像程序员的代码应该要求用户做的事情。更不用说我不想让少数使用此代码的人处于危险之中(如果让端口永久打开的话)。所以看起来我更适合找到一种方法来利用已经对传入 TCP 连接开放的端口。
旁注:所有客户端都在运行 Fedora