winsock を使用して、サーバー アプリが特定の (たとえば192.168.0.0/24
) サブネットワークからの接続のみを受け入れるようにします。
私は2つのオプションを考えています:
接続するたびにクライアントのアドレスを確認します
accept
。while (true) { SOCKET clientSocket = accept(serverSocket, (SOCKADDR *)&clientAddress, &addressLenght); if (clientSocket == INVALID_SOCKET || clientAddress.sin_addr.S_un.S_un_b.s_b1 != 192 || clientAddress.sin_addr.S_un.S_un_b.s_b2 != 168 || clientAddress.sin_addr.S_un.S_un_b.s_b3 != 0) { closesocket(clientSocket); continue; } ... }
対応するネットワークのローカル アドレスを見つけて、それを
name
引数として使用します。bind
SOCKADDR_IN serverAddress; serverAddress.sin_family = AF_INET; serverAddress.sin_port = htons(13666); serverAddress.sin_addr.S_un.S_addr = inet_addr("192.168.0.1"); result = bind(serverSocket, (SOCKADDR *)&serverAddress, sizeof(serverAddress));
他にどのようなオプションがありますか?
PS: より良い解決策があると言われました。しかし、私はそれを理解することはできません。