簡體   English   中英

如何使用WinSock2和C獲取連接的客戶端的IP地址?

[英]How can I get the connected client's IP address using WinSock2 and C?

我想獲取剛剛連接到運行WinSock2的服務器的客戶端的IP地址。 我正在使用C。

您可以通過調用accept()獲得客戶端的IP地址和端口。

只需將適當的數據傳遞到最后兩個參數即可。

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

有關詳細信息, 請在此處閱讀

我自己還沒有做過,但是看看getpeername 看起來這就是您所需要的。

這為我在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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM