介紹利用C++程序獲取網(wǎng)卡的有關(guān)程序
出處:xwj 發(fā)布于:2011-09-02 08:23:02
簡述
C++程序是一門廣泛用于工業(yè)軟件研發(fā)的大型語言。具有很高的復(fù)雜性和解決問題的能力。C++不僅在開發(fā)上極具價值,同時在學(xué)術(shù)界也就有很高的價值。有關(guān)C++的文章應(yīng)該可以用浩如煙海來形容了吧。C++的經(jīng)典書籍也是數(shù)不勝數(shù)。然而,目前開發(fā)語言是如此地繁榮,就連微軟也在推出了新的開發(fā)語言C#。一個不可否認(rèn)的現(xiàn)實(shí)是,在低階程序設(shè)計(jì)領(lǐng)域,C++擠壓著C同時也在承受著C的強(qiáng)烈反彈,前段時間看了據(jù)說是微軟操作系統(tǒng)源代碼的東東,其中很多還是C語言。而在高階程序設(shè)計(jì)領(lǐng)域,Java和C#正在不斷蠶食著C++的地盤。也許Java和C#的狂潮終將迫使C++回歸本位— 回到它有著根本性優(yōu)勢的開發(fā)領(lǐng)域:低級系統(tǒng)程序設(shè)計(jì)、大規(guī)模高性能應(yīng)用設(shè)計(jì)、嵌入式程序設(shè)計(jì)、通用程序設(shè)計(jì)以及數(shù)值科學(xué)計(jì)算等。果真如此,我認(rèn)為這未嘗不是一件好事。電力系統(tǒng)軟件所要求的高性能和大規(guī)模數(shù)值計(jì)算正是C++所擅長的。就我所接觸的南瑞和魯能,很多涉及到電力系統(tǒng)計(jì)算的軟件如PAS等,都是用C++來開發(fā)的。
寫程序首先希望是程序能正確執(zhí)行,其次是效率能夠被接受,再次就是易于維護(hù)。C++是一個難學(xué)易用的語言。C++提供了太多可選擇的東西,而且使用使用C++來寫程序可以有四種思考模式:基于過程、基于對象、面向?qū)ο蠛头盒汀?/P>
程序如下:
#include "STdafx.h"
#include
#include
#include "Iphlpapi.h"
using namespace std;
PIP_ADAPTER_INFO pinfo=NULL;
unsigned long len=0;
CString macaddress;
CString description;
CString type;
CString subnet;
CString IpAddress;
CString gateway;
CString PrimaryWinsServer;
CString dhcp;
void GetInfo();
void ParseData();
void OutPut(CString str);
void main()
{
cout《"------------------------網(wǎng)卡信息檢測---------------------n";
GetInfo();
}
void GetInfo()
{
if (pinfo!=NULL)
delete (pinfo);
unsigned long nError;
nError = GetAdaptersInfo(pinfo,&len); //1??üoˉêy
if (nError==0)
{
ParseData();
}
if (nError==ERROR_NO_DATA)
{
OutPut("沒有網(wǎng)絡(luò)設(shè)備信息");
}
if (nError==ERROR_NOT_SUPPORTED)
{
OutPut("GetAdaptersInfo不支持本系統(tǒng)");
}
if (nError==ERROR_BUFFER_OVERFLOW)
{
pinfo= (PIP_ADAPTER_INFO)malloc(len);
nError = GetAdaptersInfo(pinfo,&len);
if (nError==0)
{
ParseData();
}
}
return;
}
void ParseData()
{
if (pinfo!=NULL)
{
macaddress.Format("%02X:%02X:%02X:%02X:%02X:%02X",pinfo->Address[0],pinfo->Address[1],pinfo->Address[2],pinfo->Address[3],pinfo->Address[4],pinfo->Address[5]);
description = pinfo->Description;
type.Format("%d",pinfo->Type);
PIP_ADDR_STRING pAddressList = &(pinfo->IpAddressList);
IpAddress ="";
do
{
IpAddress += pAddressList->IpAddress.String;
pAddressList = pAddressList->Next;
if (pAddressList != NULL)
IpAddress +="rn";
} while (pAddressList != NULL);
subnet.Format("%s",pinfo->IpAddressList.IpMask.String);
gateway.Format("%s",pinfo->GatewayList.IpAddress.String);
if (pinfo->HaveWins)
PrimaryWinsServer.Format("%s",pinfo->PrimaryWinsServer.IpAddress.String );
else
PrimaryWinsServer.Format("%s","N/A" );
if (pinfo->DhcpEnabled )
dhcp.Format("%s",pinfo->DhcpServer.IpAddress.String );
else
dhcp.Format("%s","N/A");
pinfo = pinfo->Next;
}
OutPut("網(wǎng)絡(luò)設(shè)備為:t"+description);
OutPut("Mac地址為:t"+macaddress);
OutPut("網(wǎng)卡類型:t"+type);
OutPut("IP地址:t"+IpAddress);
OutPut("子網(wǎng)掩碼:t"+subnet);
OutPut("網(wǎng)關(guān):t"+gateway);
OutPut("主Wins服務(wù)器:t"+PrimaryWinsServer);
OutPut("dhcp服務(wù)器:t"+dhcp);
}
void OutPut(CString str)
{
cout<
}
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開發(fā)實(shí)踐指南2026/1/6 10:40:19
- 嵌入式實(shí)時操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計(jì)實(shí)踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開啟異核通信新時代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識2025/7/14 16:59:04









