编程论坛

 找回密码
 立即注册
广告联系qq1031180668广告位
查看: 207|回复: 2

[c/c++] 想获取本机IP地址 程序员教你用C++轻松搞定

[复制链接]
  • ta_mind

    2018-8-17 21:57
  • classn_01: 71 classn_02

    [LV.6]常住居民II

    981

    主题

    1702

    帖子

    3331

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    3331

    最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

    发表于 2018-6-18 03:52:19 | 显示全部楼层 |阅读模式
    C语言永远不会过时
    其实学编程关键是学习其思想,如果你精通了一门,再去学其他的时候也很容易上手。C不会过时的,尤其是在unix、linux操作平台上,学好C是必须的。
    C跟C++在很多方面也是兼容的,c是c++的基础。
    再者c能从很大的程度上帮你了解计算机的发展史,数据结构等方面的知识,很多软件、甚至操作系统中的很大部分是用c来实现的。
    还有一些电器芯片的程序,比如电冰箱内制冷系统……可以说用c可以解决一切可能遇到的问题,关键是你要能精通它。
    所以放开手脚去大胆的学吧,c永远不会过时
    代码如下
    [C++] syntaxhighlighter_viewsource syntaxhighlighter_copycode
    #include <winsock2.h>
    
    #include <iostream>
    
    using namespace std;
    
    #pragma comment(lib, "WS2_32.lib")
    
    void getIP()
    
    {
    
    WSADATA WSAData; //WSADATA结构被用来储存调用AfxSocketInit全局函数返回的Windows Sockets初始化信息。
    
    if (WSAStartup(MAKEWORD(2, 0),&WSAData)) // 初始化Windows sockets API
    
    {
    
    printf("WSAStartup failed %s ", WSAGetLastError());
    
    exit(-1); //异常退出
    
    }
    
    char hostName[256];
    
    if(gethostname(hostName,sizeof(hostName))) //获取主机名
    
    {
    
    printf("Error: %u ", WSAGetLastError());
    
    exit(-1);
    
    }
    
    hostent *host=gethostbyname(hostName); // 根据主机名获取主机信息(含IP)
    
    if(host==NULL)
    
    {
    
    printf("Error: %u ", WSAGetLastError());
    
    exit(-1);[/size][/font][/color][/align]
    [color=rgb(0, 0, 0)][font=&quot][size=3][color=rgb(134, 134, 134)][size=12px]悟空[/size][/color][color=rgb(255, 255, 255)][backcolor=rgb(137, 208, 95)][size=12px]楼主[/size][/backcolor][/color]
    [/size][/font][/color]
    [color=rgb(0, 0, 0)][font=&quot][size=3]cout<<"正式的主机名: "<<host->h_name<<endl
    <<"主机地址类型: "<<host->h_addrtype<<endl
    <<"地址清单: "<<host->h_addr_list<<endl
    <<"别名列表: "<<host->h_aliases<<endl
    <<"地址长度: "<<host->h_length<<endl;
    for(int i=0;host->h_addr_list[i]!=0;i++)
    {
    cout<<"该主机IP"<<i+1<<": "<<inet_ntoa(*(struct in_addr*)*host->h_addr_list)<<endl;
    }
    WSACleanup();
    }
    int main()
    {
    getIP();
    system("pause");
    return 0;
    }[/size][/font][/color]
    [align=left][color=rgb(34, 34, 34)][font=&quot][size=16px]
    }



    不积跬步,无以至千里

    classn_11

    0

    主题

    42

    帖子

    88

    积分

    注册会员

    Rank: 2

    积分
    88
    发表于 2018-7-5 12:56:01 | 显示全部楼层
    回复

    使用道具 举报

  • ta_mind
    奋斗
    2018-7-19 14:51
  • classn_01: 1 classn_02

    [LV.1]初来乍到

    0

    主题

    35

    帖子

    61

    积分

    注册会员

    Rank: 2

    积分
    61
    发表于 2018-7-19 15:04:22 | 显示全部楼层
    从零开始学编程 ,新手学编程的好地方!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|Archiver|小黑屋|sitemap|编程论坛 - 一个单纯的编程学习交流论坛 ( 豫ICP备15032706号 )

    GMT+8, 2018-9-26 12:48 , Processed in 1.185593 second(s), 24 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表