【发布时间】:2011-06-02 13:00:35
【问题描述】:
我有一个在特定 IP 端口上打开了侦听套接字的服务器应用程序。 如何允许套接字仅启用来自一个指定 IP 地址的传入连接?
【问题讨论】:
我有一个在特定 IP 端口上打开了侦听套接字的服务器应用程序。 如何允许套接字仅启用来自一个指定 IP 地址的传入连接?
【问题讨论】:
您必须使用某些防火墙软件来限制对该端口的传入请求,或者关闭您不想服务的已接受连接(基于accept 返回的套接字地址)。
可能有一些库可以为您执行此操作,但套接字 API 无法自动执行此操作。
【讨论】:
当您接受连接时,您可以在接受后检查 sockaddr,看看它是否来自正确的地址。如果没有,您立即关闭接受返回的连接套接字。
【讨论】:
你必须用accept()来接受连接,如果你不想要它就关闭它(如果你的协议支持的话,可能会发送一个错误响应)。这对于大多数应用程序来说已经足够了。
【讨论】:
试试:libauth,这是一种健壮的访问控制方式http://linux.die.net/man/3/libauth
【讨论】: