社区
通信技术
帖子详情
如何在dos/win95下编程得到网卡号
netware
2000-01-30 09:07:00
加精
...全文
598
4
打赏
收藏
如何在dos/win95下编程得到网卡号
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hokesoft
2000-05-24
打赏
举报
回复
Delphi里怎么做呢?!
wxz
2000-02-13
打赏
举报
回复
// 以下是本人的完整程序段
#ifndef __TCCARD_H
#define __TCCARD_H
#include<dos.h>
#include<stdio.h>
/***************************************************/
/* 函数 取本机器的Novell网络登陆号 */
class CNetAddress
{
private:
unsigned int LoginNumber; // Login 序号
unsigned char CardAddress[13]; // 网卡地址, 16进制
void ReadLoginNumber(void);
void ReadCardAddress(void);
char Num_Char(int numeric); //
public:
CNetAddress()
{
ReadLoginNumber();
ReadCardAddress();
}
int GetLoginNumber(void)
{
return LoginNumber;
}
unsigned char *GetAddress(void)
{
if(CardAddress[0])return CardAddress;
else return NULL;
}
};
#endif //__TCCARD_CPP
/*************************************************************//***************************************************/
/* 函数 取本机器的Novell网络登陆号 */
void CNetAddress::ReadLoginNumber(void)
{
_AH=0xdc;
geninterrupt(0x21);
LoginNumber=_AL;
}
/* 函数 取本机器的Novell网卡地址 */
void CNetAddress::ReadCardAddress(void)
{
union REGS inregs,outregs;
struct SREGS segregs;
CardAddress[0]='\0';
{
inregs.h.ah=0xEE;
intdosx(&inregs,&outregs,&segregs);
CardAddress[0]=Num_Char((outregs.h.ch>>4)&0x0f);
CardAddress[1]=Num_Char(outregs.h.ch&0x0f);
CardAddress[2]=Num_Char((outregs.h.cl>>4)&0x0f);
CardAddress[3]=Num_Char(outregs.h.cl&0x0f);
CardAddress[4]=Num_Char((outregs.h.bh>>4)&0x0f);
CardAddress[5]=Num_Char(outregs.h.bh&0x0f);
CardAddress[6]=Num_Char((outregs.h.bl>>4)&0x0f);
CardAddress[7]=Num_Char(outregs.h.bl&0x0f);
CardAddress[8]=Num_Char((outregs.h.ah>>4)&0x0f);
CardAddress[9]=Num_Char(outregs.h.ah&0x0f);
CardAddress[10]=Num_Char((outregs.h.al>>4)&0x0f);
CardAddress[11]=Num_Char(outregs.h.al&0x0f);
CardAddress[12]='\0';
}
}
char CNetAddress::Num_Char(int numeric)
{
const Asc0=48;
const AscA=65-10;
if((numeric>=0)&&(numeric<=9))
return Asc0+numeric;
if((numeric>=10)&&(numeric<=15))
return AscA+numeric;
return ' ';
}
#endif //__TCCARD_CPP
/*************************************************************/
netware
2000-02-01
打赏
举报
回复
那么在DOS下呢?
Wingsun
2000-01-30
打赏
举报
回复
这个为题已经有人提过,
在Win95下,我使用的是BCB4.0,实现方法如下:
typedef struct _ASTAT_
{
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff [30];
}ASTAT, * PASTAT;
ASTAT Adapter;
NCB ncb;
UCHAR uRetCode;
char NetName[50];
memset( &ncb, 0, sizeof(ncb) );
ncb.ncb_command = NCBRESET;
ncb.ncb_lana_num = 0;
uRetCode = Netbios( &ncb );
if (uRetCode!=0)
EdNetAdapterNumber->Text="网卡初始化失败!";
memset(&ncb, 0, sizeof(ncb) );
ncb.ncb_command = NCBASTAT;
ncb.ncb_lana_num = 0;
strcpy( ncb.ncb_callname, "* " );
ncb.ncb_buffer = (char *) &Adapter;
ncb.ncb_length = sizeof(Adapter);
uRetCode = Netbios( &ncb );
if ( uRetCode == 0 )
{
AnsiString Address;
int i;
Address="";
for(i=0;i<6;i++)
{
Address+=IntToHex((int)Adapter.adapt.adapter_address[i],2);
}
EdNetAdapterNumber->Text=Address ;
}
msods5.8 u盘上的
dos
3.内置200多种100M及1000M
网卡
驱动,实现GHOST网络刻隆及
DOS
下访问局域网的共享资源. 4.全中文的操作方式,让您使用时更简单,并且支持
DOS
下五笔拼音输入及中文文件操作. 5.完全傻瓜化的网刻模式,让没用过本软件的...
Max
DOS
7 & Ghost8.2 For
Win
2k/XP/2K3
Debug.exe 强大的
dos
下
编程
命令. Diskgen.exe 强大的
dos
下中文分区软件.一直用它.Max强烈推荐,强过dm. Fdisk.exe 早期的
dos
分区命令. Ghost.exe 系统备份还原工具.如果运行了ntfs
dos
.请用exit退出后再运行. Go.exe ...
Max
DOS
& Ghost8.2 7 For Vista/2008
3. 内置200多种
网卡
驱动,实现GHOST网络刻隆及
DOS
下访问局域网的共享资源. 4. 全中文的操作方式,让您使用时更简单,支持
DOS
下显示中文及五笔拼音输入. 5. 完全傻瓜化的网刻模式,让没用过本软件的用户也能轻松实现网...
升级Max
DOS
71
10.支持
DOS
驱动SATA.SCSI.1394.USB.PCMCIA等设置,可直接在
DOS
下访问. 11.首家独创全面支持nVIDIA全系列
网卡
网刻,更多精采内容请查阅“说明文件”. ===============================================================...
Max
DOS
_71PXE_G115.rar
3. 内置200多种
网卡
驱动,实现GHOST网络刻隆及
DOS
下访问局域网的共享资源. 4. 全中文的操作方式,让您使用时更简单,支持
DOS
下显示中文及五笔拼音输入. 5. 完全傻瓜化的网刻模式,让没用过本软件的用户也能轻松实现网刻....
通信技术
4,356
社区成员
28,926
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章