JCHub

  • Home
  • Category
    • A/V
    • WebRTC
    • Beauty of Programming
    • Linux
    • Windows
    • Moments of Life
    • Campus Life
  • Reference
    • API Reference
    • Utilities
    • AV Test
    • Doc
  • Message Board
  • About
JCHub
Code as My Sword, Lost in Obsession
  1. Main page
  2. Beauty of Programming
  3. Main content

VC++获取本机IP地址

2015年6月19日 2622hotness 4likes 0comments

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;
}

This article is licensed with Creative Commons Attribution-NonCommercial-No Derivatives 4.0 International License
Tag: C++
Last updated:2015年6月19日

Jeff

管理员——代码为剑,如痴如醉

Tip the author Like
< Last article
Next article >

Comments

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
Cancel

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Related Posts
  • Nodejs C++ addon开发简介
  • 网络字节转换到本地字节的函数模板
  • MFC自绘带背景颜色标题栏
  • FLTK程序编译错误
  • C++实现windows重启
Categories

COPYRIGHT © 2026 jianchihu.net. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang