因为客户端没有bind,所想要要一个函数在本地来得到客户端自己的IP,getsocketname返回的是0.0.0.0,我不要这个IP,请问有什么好的办法吗?
试试这个函数:
struct ifreq ifr;
strcpy(ifr.ifr_name, "eth0");
ioctl(sock_fd, SIOCGIFADDR, &ifr);
ifr里面就应该有ip地址了
ioctl提供了相应的选项,应该是GET CONF选项,可以得到所有网卡的名字,然后使用你那个ADDR的参数就能获得IP了。