你能从连接的 TCP 套接字中确定源 IP 和端口吗?

标签 c sockets msvcrt libc

我想让我的服务器从连接的 TCP 套接字中确定客户端的源 IP 和端口。由于我的客户可能落后于 NAT,我不能依赖于客户告诉我(在连接协议(protocol)中)...如果可能的话,我将需要在 Windows 和 Linux 上实现它。 .. 但是任何一个的答案都会帮助我开始......

我正在使用 C,我正在寻找基于 libc 或 msvcrt 的解决方案。

最佳答案

应该在 linux 和 windows 中都工作:

struct sockaddr_in addr;
socklen_t len;

len = sizeof addr;
getpeername(clientSocket, (struct sockaddr*)&addr, &len);
printf("Remote IP address: %s\n", inet_ntoa(addr.sin_addr));

关于你能从连接的 TCP 套接字中确定源 IP 和端口吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6296258/

相关文章:

python - 我无法将 GUI 合并到我的 python 程序中

visual-studio - 为什么我需要安装 MSVC++ redist。?

wix - 使用 WiX 自动安装运行时库

c++ - 如果已知 void* 分配大小,如何将确切的内存大小传递给 free()

c++ - 为什么这个 C 代码中的字母表被分成多个范围?

c - 错误: expected declaration specifiers or ‘...’ before ‘lessthen_predictable_t?

java - 打开的套接字和连接的套接字有什么区别?

node.js - SPA 中的公共(public)和私有(private) socket.io 连接

c - MSVCRT:sin、cos等的实现(源码)在哪里?

c - 如何检查给定文件夹是否为挂载点