• 欢迎浏览“String me = Creater\忠实的资深Linux玩家;”,请文明浏览,理性发言,有侵犯你的权益请邮件我(creater@vip.qq.com).
  • 把任何的失败都当作一次尝试,不要自卑;把所有的成功都想成是一种幸运,不要自傲。
  •    5年前 (2013-06-04)  网络 |   2 条评论  13 
    文章评分 0 次,平均分 0.0

    最近在一同学的毕业论文里需要获取本机IP地址。《unix网络编程》上面有比较详细的说明:可以使用ioctl,也可以使用get_ifi_info。

    QString GetLocalIp()  
    {  
      
        int sock_get_ip;  
        char ipaddr[50];  
        struct   sockaddr_in *sin;  
        struct   ifreq ifr_ip;     
        if ((sock_get_ip=socket(AF_INET, SOCK_STREAM, 0)) == -1)  
         {  
             printf("socket create failse...GetLocalIp!/n");  
             return "";  
         }       
        memset(&ifr_ip, 0, sizeof(ifr_ip));     
        strncpy(ifr_ip.ifr_name, "eth0", sizeof(ifr_ip.ifr_name) - 1);       
        if( ioctl( sock_get_ip, SIOCGIFADDR, &ifr_ip) < 0 )     
         {     
             return "";     
         }       
        sin = (struct sockaddr_in *)&ifr_ip.ifr_addr;     
        strcpy(ipaddr,inet_ntoa(sin->sin_addr));             
        printf("local ip:%s /n",ipaddr);      
        close( sock_get_ip );      
        return QString( ipaddr );  
    }  
     

    除特别注明外,本站所有文章均为String me = "Creater\忠实的资深Linux玩家";原创,转载请注明出处来自http://unix8.net/home.php/1387.html

    关于

    发表评论

    暂无评论

    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享