怎样在98下获取网卡的型号名称?

linfeng1216 2003-10-17 10:44:02
如果机器装了一块以上的网卡,在2000下通过调用GetAdaptersInfo()函数返回一个结构体,根据其中的AdapterName到注册表中保存网卡信息的键下,通过枚举子键就可得到网卡的型号,但是在98下通过调用此函数返回的AdapterName值为空,那应该怎么样得到网卡的型号呢?
哪位兄弟做过的请指教一下!
...全文
55 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
linfeng1216 2003-11-14
  • 打赏
  • 举报
回复
up again
linfeng1216 2003-11-09
  • 打赏
  • 举报
回复
up
linfeng1216 2003-11-02
  • 打赏
  • 举报
回复
注册表里确实保存了网卡的型号信息,我也看过了,但那里一般都有6、7种型号(诸如网络适配器之类的型号),我们打开注册表来看知道哪个键是网卡的型号,但程序不知道啊,注册表中又没有明显的标志来说明哪个键就是实际网卡?
在2000系统中通过上面所说的GetAdaptersInfo()函数就可得到实际网卡的一个标志字符串,然后根据这个标志就可以到注册表中去查询。但在98系统下就不是这样。真是郁闷啊。
真的就没有哪位大哥知道吗?
Riverqh 2003-10-31
  • 打赏
  • 举报
回复
打开注册表总可以吧?反正都是反正注册表里的,tcp/ip那里
linfeng1216 2003-10-23
  • 打赏
  • 举报
回复
up
linfeng1216 2003-10-18
  • 打赏
  • 举报
回复
谢谢楼上的。
看过了没什么用,上面说的我都知道,而且在WIN2000下我所有的网卡信息都能得到,WIN98下也能得到IP、物理地址之类的,就差网卡型号名称了。
紫郢剑侠 2003-10-18
  • 打赏
  • 举报
回复
gz

up
howtotell 2003-10-17
  • 打赏
  • 举报
回复
sorry,看错你的要求了。
这两个地方也许对你有帮助
http://www.zdnet.com.cn/developer/code/story/0,2000081534,39046680,00.htm
http://www.copathway.com/vchelp/file2002_2/ViewAdapterInfo.zip
howtotell 2003-10-17
  • 打赏
  • 举报
回复
如果装有netbios协议可以用下面的代码得到:(很多人问过了,代码都是查不错的)
typedef struct _ASTAT_
{
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff[30];
} ASTAT, * PASTAT;

CString sNetBiosName=GetLocalIP();



strcpy(ip,sNetBiosName);

int maccounter=0;
CString strMacAddr;
ASTAT Adapter;
NCB ncb;
UCHAR uRetCode;
LANA_ENUM lana_enum;
memset(&ncb, 0, sizeof(ncb));
ncb.ncb_command=NCBENUM;//发送命令查询网卡数目
ncb.ncb_buffer=(unsigned char*)&lana_enum;
ncb.ncb_length=sizeof(lana_enum);
uRetCode=Netbios(&ncb);
if(uRetCode==0)
{
maccounter=lana_enum.length;
for(int maci=0;maci<maccounter;maci++)
{
ncb.ncb_command = NCBRESET;//重置网卡
ncb.ncb_lana_num = maci;//指定网卡编号
uRetCode = Netbios(&ncb);
memset(&ncb, 0, sizeof(ncb));
ncb.ncb_command = NCBASTAT;//获取网卡状态
ncb.ncb_lana_num = maci;
sNetBiosName.MakeUpper();
FillMemory(ncb.ncb_callname, NCBNAMSZ - 1, 0x20);
strcpy((char *)ncb.ncb_callname, (LPCTSTR) sNetBiosName);
ncb.ncb_callname[sNetBiosName.GetLength()] = 0x20;
ncb.ncb_callname[NCBNAMSZ] = 0x0;
ncb.ncb_buffer = (unsigned char *) &Adapter;
ncb.ncb_length = sizeof(Adapter);
uRetCode = Netbios(&ncb);
CString sMacAddress;
if (uRetCode == 0)
{
sMacAddress.Format(_T(" 网卡%d:%02x%02x%02x%02x%02x%02x"),
maci+1,
Adapter.adapt.adapter_address[0],
Adapter.adapt.adapter_address[1],
Adapter.adapt.adapter_address[2],
Adapter.adapt.adapter_address[3],
Adapter.adapt.adapter_address[4],
Adapter.adapt.adapter_address[5]);
}
strMacAddr+=sMacAddress;
strMacAddr+=" \r\n";
}
}
strcpy(mac,strMacAddr);

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧