資源簡介
在MFC環境下獲取本機網絡信息,本地IP 外網IP 子虛掩碼 mac地址

代碼片段和文件信息
#include?“StdAfx.h“
#include?
#include?“NetworkConf.h“
#include?
#include?
#include?“Iphlpapi.h“
#include?
#pragma?comment(lib“Iphlpapi“)
#pragma?comment(lib“WS2_32“)
using?namespace?std;
CNetworkConf::CNetworkConf(void)
{
ZeroMemory(m_ucLocalMac6);
m_dwGatewayIP=m_dwLocalIP=m_dwMask=0;
m_pAdapterInfo=NULL;
m_lLen=0;
::GetAdaptersInfo(m_pAdapterInfo&m_lLen);
m_pAdapterInfo=(PIP_ADAPTER_INFO)::GlobalAlloc(GPTRm_lLen);
m_strNavigateUrl=_T(“http://www.whatismyip.com.tw/“);
}
CNetworkConf::~CNetworkConf(void)
{
}
/*
?*函數名:GetIPinfo
?*參??數:是否內網(支持獲取外網IP)
?*返回值:CString?IP地址?
?*注??意:投遞外網IP的鏈接可能不穩定
?*/
CString?CNetworkConf::GetIPinfo(?bool?bIntranet/*=false*/?)
{
CString?strLocalIP=_T(““);
if?(bIntranet)
{
if?(InitNetInfo())
{
in_addr?in;
in.S_un.S_addr=m_dwLocalIP;
strLocalIP=inet_ntoa(in);
}
}else
{
CAtlHttpClient httpClient;
m_strNavigateUrl=_T(“http://www.ip138.com/“);
if?(httpClient.Navigate(m_strNavigateUrl))
{
if?(httpClient.GetStatus()==200)
{?
int?nLen=httpClient.GetBodyLength();
char*?pBuff=new?char[nLen+1];
memset(pBuff0nLen+1);
memcpy(pBuffhttpClient.GetBody()nLen);
strLocalIP=pBuff;
int?nLeft=strLocalIP.Find(_T(““))+CString(_T(““)).GetLength();
int?nCount=strLocalIP.Find(_T(“
“))-nLeft;
strLocalIP=strLocalIP.Mid(nLeftnCount);
delete?[]pBuff;
}
}
}
return?strLocalIP;
}
CString?CNetworkConf::GetMacinfo()
{
CString?strMac=_T(““);
if?(InitNetInfo())
{
UCHAR?*pInfo=m_ucLocalMac;
strMac.AppendFormat(_T(“%02X-%02X-%02X-%02X-%02X-%02X“)?pInfo[0]?pInfo[1]?pInfo[2]?pInfo[3]?pInfo[4]?pInfo[5]);
}
return?strMac;
}
CString?CNetworkConf::GetSubnetMask()
{
CString?strMask=_T(““);
if?(InitNetInfo())
{
in_addr?in;
in.S_un.S_addr=m_dwMask;
strMask=inet_ntoa(in);
}
return?strMask;
}
CString?CNetworkConf::GetGateway()
{
CString?strGatewayIP=_T(““);
if?(InitNetInfo())
{
in_addr?in;
in.S_un.S_addr=m_dwGatewayIP;
strGatewayIP=inet_ntoa(in);
}
return?strGatewayIP;
}
bool?CNetworkConf::InitNetInfo()
{
bool?bSuccess=(ERROR_SUCCESS==::GetAdaptersInfo(m_pAdapterInfo&m_lLen))?;
memcpy(m_ucLocalMac?m_pAdapterInfo->Address?6);
m_dwGatewayIP?=?::inet_addr(m_pAdapterInfo->GatewayList.IpAddress.String);
m_dwLocalIP?=?::inet_addr(m_pAdapterInfo->IpAddressList.IpAddress.String);
m_dwMask?=?::inet_addr(m_pAdapterInfo->IpAddressList.IpMask.String);
return?bSuccess;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-09-29?13:04??NetworkConf\
?????文件????????2642??2012-09-29?13:03??NetworkConf\NetworkConf.cpp
?????文件?????????535??2012-09-29?10:40??NetworkConf\NetworkConf.h
- 上一篇:MFCC的matlab實現
- 下一篇:MFC類圖-vs2010最新
評論
共有 條評論