剑痴乎

  • 首页
  • 文章分类
    • 音视频
    • WebRTC
    • 编程之美
    • Linux
    • Windows
    • 生活点滴
    • 校园生活
  • 参考
    • API参考
    • 实用工具
    • 测试音视频
    • 文档
  • 留言板
  • 关于
剑痴乎
代码为剑,如痴如醉
  1. 首页
  2. 编程之美
  3. 正文

VC++获取本机IP地址

2015年6月19日 405点热度 0人点赞 0条评论

IP地址分内网的与外网的,通过下面的VC代码可以获取本机IP(如果连接路由器,会得到两个IP地址,一个内网(192.168.1.*)的,一个外网的)。

VC++获取本机IP
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <winsock2.h>
#pragma comment(lib, "WS2_32")    // 链接到WS2_32.lib
 
class CInitSock        
{
public:
    CInitSock(BYTE minorVer = 2, BYTE majorVer = 0)
    {
        // 初始化WS2_32.dll
        WSADATA wsaData;
        WORD sockVersion = MAKEWORD(minorVer, majorVer);
        if(::WSAStartup(sockVersion, &wsaData) != 0)
        {
            exit(0);
        }
    }
    ~CInitSock()
    {    
        ::WSACleanup();    
    }
};
 
int main()
{      
    CInitSock initSocket;
    char szHost[256]= "";
    char szIp[256] = "";
    //取得本地主机名
    ::gethostname(szHost,256);
    //通过主机名得到地址信息
    hostent *pHost = ::gethostbyname(szHost);
 
    in_addr addr;
    for(int i = 0;;i++)
    {
        //p指向一个32位的IP地址
        char *p = pHost->h_addr_list[i];
        if (p == NULL)
        {
            break;
        }
        memcpy(&addr.S_un.S_addr,p,pHost->h_length);
        char *szIpTemp = ::inet_ntoa(addr);
        std::cout<<"本机IP:"<<szIpTemp<<"\n";
        strcpy_s(szIp,szIpTemp);
    }
    return 0;
}

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
标签: C++
最后更新:2015年6月19日

Jeff Young

代码为剑,如痴如醉

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

我的其它小窝

公众号:码上Play(基本不更新,回答问题用)

近期评论
  • Jeff on WebRTC研究:BBR拥塞控制被移除了研究过了,等后面有时间简单说明下
  • xhcx on WebRTC研究:BBR拥塞控制被移除了楼主,BBR移除的原因最近有研究吗,分享一下
  • Jeff on Windows平台WebRTC编译(持续更新)M79是2019年发布的版本,不适用这篇文章。编译…
  • haige on Windows平台WebRTC编译(持续更新)我编译的m79版本,用VS2019打开会报错, F…
  • 菜菜 on libcef编译使用--使用VS2015是真的鸟
版权声明

为支持原创,创作更好的文章,未经许可,禁止任何形式的转载与抄袭,如需转载请邮件私信!本人保留所有法定权利。违者必究!

相关文章推荐
  • web页面npapi插件资源管理问题
  • 基于FireBreath的npapi插件在Firefox下的调试
  • 对那些自称“精通c++”人的看法
  • 网络字节转换到本地字节的函数模板
  • libcef编译使用--使用VS2015

COPYRIGHT © 2021 剑痴乎. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS