当主机拥有多个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));