0

WinSock2 を実行しているサーバーに接続したばかりのクライアントの IP アドレスを取得したいと考えています。私はCを使用しています。

4

3 に答える 3

6

への呼び出しを介して、クライアントの IP アドレスとポートを取得できますaccept()

適切なデータを最後の 2 つのパラメーターに渡すだけです。

struct sockaddr_in sa = {0}; /* for TCP/IP */
socklen_t socklen = sizeof sa;
... = accept(..., (struct sockaddr *) &sa, &socklen);

詳しくはこちらをお読みください

于 2013-05-23T14:21:17.600 に答える
0

これはwinsock2で機能します。getpeernameは不要

SOCKET newConnection;
SOCKADDR_IN addr;
int addrlen = sizeof(addr);

newConnection = accept(sListen, (SOCKADDR*)&addr, &addrlen);

char *ip = inet_ntoa(addr.sin_addr);
printf("Accepted Connection from :  %s", ip);
于 2016-07-20T06:42:08.800 に答える