国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - C/C++ - C++實現(xiàn)獲取IP、子網(wǎng)掩碼、網(wǎng)關(guān)、DNS等本機網(wǎng)絡(luò)參數(shù)的方法

C++實現(xiàn)獲取IP、子網(wǎng)掩碼、網(wǎng)關(guān)、DNS等本機網(wǎng)絡(luò)參數(shù)的方法

2021-01-24 11:54C++教程網(wǎng) C/C++

這篇文章主要介紹了C++實現(xiàn)獲取IP、子網(wǎng)掩碼、網(wǎng)關(guān)、DNS等本機網(wǎng)絡(luò)參數(shù)的方法,需要的朋友可以參考下

本文以一個完整實例形式介紹了C++實現(xiàn)獲取IP子網(wǎng)掩碼網(wǎng)關(guān)DNS等本機網(wǎng)絡(luò)參數(shù)的方法,供大家參考,具體的完整實例如下:

?
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#pragma comment(lib,"Ws2_32.lib")
#include <Iphlpapi.h>
#pragma comment(lib, "Iphlpapi.lib")
using namespace std;
typedef struct tagNetworkCfg
{
 char szIP[18];
 char szNetmask[18];
 char szGateway[18];
 char szDns1[18];
 char szDns2[18];
}NetworkCfg;
bool GetNetworkCfg(NetworkCfg *cfg)
{
 log_printf("Get network config");
 //獲取網(wǎng)卡名稱 網(wǎng)卡名稱,網(wǎng)卡別名
 string strAdapterName,strAdapterAlias;
 HKEY hKey, hSubKey, hNdiIntKey;
 if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,
 "System\\CurrentControlSet\\Control\\Class\\{4d36e972-e325-11ce-bfc1-08002be10318}",
 0,
 KEY_READ,
 &hKey) != ERROR_SUCCESS)
 return FALSE;
 
 DWORD dwIndex = 0;
 DWORD dwBufSize = 256;
 DWORD dwDataType;
 char szSubKey[256];
 unsigned char szData[256];
 
 while(RegEnumKeyEx(hKey, dwIndex++, szSubKey, &dwBufSize, NULL, NULL, NULL, NULL) == ERROR_SUCCESS)
 {
 if(RegOpenKeyEx(hKey, szSubKey, 0, KEY_READ, &hSubKey) == ERROR_SUCCESS)
 {   
  if(RegOpenKeyEx(hSubKey, "Ndi\\Interfaces", 0, KEY_READ, &hNdiIntKey) == ERROR_SUCCESS)
  {
  dwBufSize = 256;
  if(RegQueryValueEx(hNdiIntKey, "LowerRange", 0, &dwDataType, szData, &dwBufSize) == ERROR_SUCCESS)
  {
   if(strstr((char*)szData, "ethernet") != NULL)//  判斷是不是以太網(wǎng)卡
   {
   dwBufSize = 256;
   if(RegQueryValueEx(hSubKey, "DriverDesc", 0, &dwDataType, szData, &dwBufSize) == ERROR_SUCCESS)
   {
    strAdapterName = (LPCTSTR)szData;
    dwBufSize = 256;
    if(RegQueryValueEx(hSubKey, "NetCfgInstanceID", 0, &dwDataType, szData, &dwBufSize) == ERROR_SUCCESS)
    {
    strAdapterAlias = (LPCTSTR)szData;
    break;
    }
   }
   }
  }
  RegCloseKey(hNdiIntKey);
  }
  RegCloseKey(hSubKey);
 }
 
 dwBufSize = 256;
 /* end of while */
 
 RegCloseKey(hKey);
 if (strAdapterName.empty() || strAdapterAlias.empty())
 {
 log_printf("failed to get network config");
 return false;
 }
 string strKeyName = "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\";
 strKeyName += strAdapterAlias;
 if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,
 strKeyName.c_str(),
 0,
 KEY_READ,
 &hKey) != ERROR_SUCCESS)
 return FALSE;
 dwBufSize = 256;
 if(RegQueryValueEx(hKey, "DhcpIPAddress", 0,&dwDataType, szData, &dwBufSize) == ERROR_SUCCESS)
 strcpy(cfg->szIP,(LPCTSTR)szData);
 else{
 if(RegQueryValueEx(hKey, "IPAddress", 0, &dwDataType, szData, &dwBufSize) == ERROR_SUCCESS)
 strcpy(cfg->szIP,(LPCTSTR)szData);
 }
  
 dwBufSize = 256;
 if(RegQueryValueEx(hKey, "DhcpSubnetMask", 0, &dwDataType, szData, &dwBufSize) == ERROR_SUCCESS)
 strcpy(cfg->szNetmask,(LPCTSTR)szData);
 else
 {
 if(RegQueryValueEx(hKey, "SubnetMask", 0, &dwDataType, szData, &dwBufSize) == ERROR_SUCCESS)
 trcpy(cfg->szNetmask,(LPCTSTR)szData);
 }
  
 dwBufSize = 256;
 if(RegQueryValueEx(hKey, "DhcpDefaultGateway", 0, &dwDataType, szData, &dwBufSize) == ERROR_SUCCESS)
 strcpy(cfg->szGateway,(LPCTSTR)szData);
 else
 {
 if(RegQueryValueEx(hKey, "DefaultGateway", 0, &dwDataType, szData, &dwBufSize) == ERROR_SUCCESS)
 strcpy(cfg->szGateway,(LPCSTR)szData);
 }
 RegCloseKey(hKey);
 
 //獲取DNS服務(wù)器信息
 FIXED_INFO *fi = (FIXED_INFO *)GlobalAlloc(GPTR,sizeof( FIXED_INFO));
 ULONG ulOutBufLen = sizeof(FIXED_INFO);
 DWORD ret = ::GetNetworkParams(fi, &ulOutBufLen);
 if(ret != ERROR_SUCCESS)
 {
 GlobalFree(fi);
 fi = (FIXED_INFO *) GlobalAlloc( GPTR, ulOutBufLen );
 ret = ::GetNetworkParams(fi, &ulOutBufLen);
 if(ret != ERROR_SUCCESS)
 {
  log_printf("Get Dns server failed");
  return false;
 }
 }
 strcpy(cfg->szDns1,fi->DnsServerList.IpAddress.String);
 IP_ADDR_STRING *pIPAddr = fi->DnsServerList.Next;
 if(pIPAddr != NULL)
 strcpy(cfg->szDns2, pIPAddr->IpAddress.String);
 return false;
}

延伸 · 閱讀

精彩推薦
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內(nèi)存中的數(shù)據(jù)都是暫時的,當程序結(jié)束時,它們都將丟失,為了永久性的保存大量的數(shù)據(jù),C語言提供了對文件的操作,這篇文章主要給大家介紹了關(guān)于C語言中文件...

    針眼_6702022-01-24
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++深入理解goto語句的替代實現(xiàn)方式分析

    深入理解goto語句的替代實現(xiàn)方式分析

    本篇文章是對goto語句的替代實現(xiàn)方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網(wǎng)7342020-12-03
  • C/C++學(xué)習(xí)C++編程的必備軟件

    學(xué)習(xí)C++編程的必備軟件

    本文給大家分享的是作者在學(xué)習(xí)使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    strcpy 和strcnpy函數(shù)是字符串復(fù)制函數(shù)。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數(shù)使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    這篇文章主要介紹了c++ 單線程實現(xiàn)同時監(jiān)聽多個端口的方法,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++C語言實現(xiàn)電腦關(guān)機程序

    C語言實現(xiàn)電腦關(guān)機程序

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)電腦關(guān)機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++C/C++經(jīng)典實例之模擬計算器示例代碼

    C/C++經(jīng)典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關(guān)于C/C++經(jīng)典實例之模擬計算器的相關(guān)資料,文中通過示...

    jia150610152021-06-07
主站蜘蛛池模板: 久久99久久99精品免观看粉嫩 | 国产日韩欧美高清 | 国产露脸国语对白在线 | 久久免费99精品久久久久久 | 久久综合影院 | 欧美日韩第一页 | 荷兰欧美一级毛片 | 午夜激情在线播放 | 国产精品久久久久久久久久久久久 | 91视频精品 | 日本特黄特色aaa大片免费 | 国产日韩精品视频 | 亚洲成av人片在线观看无码 | 夜夜草av | 在线观看欧美日韩 | 中文字幕日韩有码 | 国产精品亚洲第一区在线暖暖韩国 | 亚洲精久久| 亚洲国产精品久久久久婷婷老年 | 一级看片 | 欧美精品1区2区3区 欧洲一区在线 | 久久视频一区 | 欧美一区高清 | 国产一区二区三区在线免费 | 伊人二区 | 亚洲天堂免费在线 | 精品日韩一区 | 免费黄色在线 | 久久手机免费视频 | 日韩黄网| 国产精品成人一区二区三区夜夜夜 | 日本一区二区电影 | 中文字幕视频一区 | 亚洲天堂五码 | 午夜精品一区二区三区免费视频 | av亚洲在线| 北条麻妃一区二区三区在线观看 | 国内精品视频 | 黄色成人在线 | 亚洲国产日韩欧美 | 国产一区二区三区四区在线观看 |