对方连接本机的哪个IP?
主页 上一层 获得本机IP 对方连接本机的哪个IP? 如何使用DNS 文件流方式 读取一行语句 不定长参数 以Daemon方式运行 端口重用 用户登录及权限设置

 

本机是Server,当存在多IP时,如何得知对方是通过哪个IP连接到本机的?

当主机拥有多个IP地址,而且需要根据用户连接到哪个IP来判断对应的服务。例如:9#的FTP服务器,楼外IP是166.111.136.3,楼内IP是10.9.xx.xx,则可以根据对方连接到哪个IP来判断对方是楼内用户还是楼外用户。

可以使用以下程序得到本连接的本地IP:(设sockfd是通过accept生成的连接描述符,已连接)

struct sockaddr_in sa;

int len = sizeof(sa);

getsockname(sockfd, (struct sockaddr *)&sa, &len);

printf("本连接的本地IP:%s", inet_ntoa(sa.sin_addr));