C语言获得电脑的IP地址的小例子

 更新时间:2013年05月15日 09:40:18   作者:  
C语言获得电脑的IP地址的小例子,需要的朋友可以参考一下
复制代码 代码如下:

#include <stdio.h>
 #include <winsock2.h>

 #pragma comment(lib, "WS2_32.lib")

 int main()
 {
     char host_name[256]; // define host name (for example:xxx-PC)
     int WSA_return, i;
     WSADATA WSAData;
     HOSTENT *host_entry; // record host information
     WORD  wVersionRequested;

 
     wVersionRequested = MAKEWORD(2, 0);
     WSA_return = WSAStartup(wVersionRequested, &WSAData); // initialize Winsock service and then call other socket or dll file

     if (WSA_return == 0) // initialize success
     {
         gethostname(host_name, sizeof(host_name));
         host_entry = gethostbyname(host_name);

         for(i = 0; host_entry != NULL && host_entry->h_addr_list[i] != NULL; ++i)
         {
             // define pszAddr to record IP
             // inet_ntoa: Convert an IP into an Internet standard dotted format string
             const char *pszAddr = inet_ntoa (*(struct in_addr *)host_entry->h_addr_list[i]);
             printf("[IP]\t%s\n[Name]\t%s\n\n", pszAddr, host_name);
         }
     }
     else
     {
         printf("ERROR\n");
     }
     /* WSACleanup() finish use Winsock 2 DLL (Ws2_32.dll). Head:Winsock2.h. reference #pragma comment(lib, "ws2_32.lib") */
     WSACleanup();
     return 0;
 }

相关文章

  • 解决Qt设置QTextEdit行高的问题

    解决Qt设置QTextEdit行高的问题

    这篇文章介绍了Qt设置QTextEdit行高的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • C++命名空间使用详细介绍

    C++命名空间使用详细介绍

    考虑一种情况,当我们有两个同名的人,Zara,在同一个班里。当我们需要对它们进行区分我们必须使用一些额外的信息和它们的名字,比如它们生活在不同的区域或者兴趣爱好什么的,在C++程序中也会遇到同样的情况,所以命名空间就此产生
    2022-09-09
  • 一文教你快速了解C语言中的作用域和常量

    一文教你快速了解C语言中的作用域和常量

    作用域(scope)是程序设计概念,通常来说一段程序代码中所用到的名字并不总是有效/可用,下面这篇文章主要给大家介绍了关于如何快速了解C语言中的作用域和常量的相关资料,需要的朋友可以参考下
    2023-06-06
  • C++宽字符与普通字符的转换实例详解

    C++宽字符与普通字符的转换实例详解

    这篇文章主要介绍了C++宽字符与普通字符的转换实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • Qt编写地图实现海量点位标注

    Qt编写地图实现海量点位标注

    海量点位标注的出现,是为了解决普通设备点超过几百个性能极速降低的问题。本文将介绍如何通过Qt实现海量点位标注功能,感兴趣的可以了解一下
    2022-01-01
  • C语言指针基础知识实例讲解

    C语言指针基础知识实例讲解

    这篇文章主要介绍了C语言指针基本知识实例讲解,文中实例讲解的很清晰,有不太懂的同学可以研究下
    2021-02-02
  • C语言实现括号配对的方法示例

    C语言实现括号配对的方法示例

    本文主要介绍了C语言实现括号配对的方法示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • C++ new与malloc和delete及free动态内存管理及区别介绍

    C++ new与malloc和delete及free动态内存管理及区别介绍

    这篇文章主要介绍了深入理解C++中的new/delete和malloc/free动态内存管理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • C语言指针之必须要掌握的指针基础知识

    C语言指针之必须要掌握的指针基础知识

    这篇文章主要介绍了C语言指针必须要掌握的基础知识,文中实例讲解的很清晰,有不太懂的同学可以研究下,希望能够给你带来帮助
    2021-09-09
  • C/C++哈希表优化LeetCode题解997找到小镇的法官

    C/C++哈希表优化LeetCode题解997找到小镇的法官

    这篇文章主要为大家介绍了C/C++哈希表优化题解997找到小镇的法官示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12

最新评论