获取网络连接名称“本地连接”的两种方法



方法一:通过WMI得到连接属性NETCON_PROPERTIES,这个结构体定义如下:

typedef struct tagNETCON_PROPERTIES
    {
    GUID guidId;
    LPWSTR pszwName;
     LPWSTR pszwDeviceName;
    NETCON_STATUS Status;
    NETCON_MEDIATYPE MediaType;
    DWORD dwCharacter;
    CLSID clsidThisObject;
    CLSID clsidUiObject;
    } NETCON_PROPERTIES;
pszwName就是“本地连接”的网络连接名称。
给出控制台程序源码:

#include "stdafx.h"
#include
#pragma comment(lib,"Iphlpapi.lib")
#include

#pragma comment(lib,"Rpcrt4.lib")//GUID
#include //启用、禁用网卡

#pragma comment(lib,"ole32.lib")
#include

int main(int argc, char* argv[])
{
INetConnectionManager *pManager;
INetConnection *pConnection;
IEnumNetConnection *pEnum;
ULONG           celtFetched;
CoInitialize(NULL);
CoCreateInstance(CLSID_ConnectionManager,   NULL,   CLSCTX_SERVER,   IID_INetConnectionManager,   (void**)&pManager);
pManager->EnumConnections(NCME_DEFAULT,   &pEnum);
pManager->Release();    
while(   pEnum->Next(1,   &pConnection,   &celtFetched)   ==   S_OK   )
{
NETCON_PROPERTIES*   properties;
pConnection->GetProperties(&properties);
DWORD dwNum = WideCharToMultiByte(CP_OEMCP,NULL,properties->pszwName,-1,NULL,0,NULL,FALSE);
char *psText;
psText = new char[dwNum];
if(!psText)
{
delete []psText;
}
WideCharToMultiByte (CP_OEMCP,NULL,properties->pszwName,-1,psText,dwNum,NULL,FALSE);
printf(psText);
printf("\r\n");
delete []psText;
}
return 0;
}

方法二:通过注册表读取,路径如下:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}
在这个键下面每一个网卡对应有一个子键Connection,再下一级就有一个Name的键值就是网络连接名称了。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值