NetBios网络编程;NetBios理解

这两天接触NetBios,总算拨开了一层弄弄的雾 .

//NetBios()操作;

要操作NetBios()首先要知道LANA编号,往上有这部分只是,但是感觉不实用,起码我应为一个LANA编号无效捉摸了一天 

首先获取LANA编号,暂理解网卡的编号;

int NBGetLANANUM()
{
	NCB ncb;
	memset(&ncb, 0, sizeof(ncb));
	LANA_ENUM lana_enum;
	ncb.ncb_command = NCBENUM;
	ncb.ncb_buffer = (unsigned char *)&lana_enum;
	ncb.ncb_length = sizeof(lana_enum);
	Netbios(&ncb);
	NBCheck(ncb);
	if (NRC_GOODRET == ncb.ncb_retcode)
	{
		printf("Ethernet Count is : %d\n\n", lana_enum.length);
		// 对每一张网卡,以其网卡编号为输入编号
		for (int i = 0; i < lana_enum.length; ++i)
		{
			printf("Ethernet 's num is %d\n", lana_enum.lana[i]);<span style="white-space:pre">	</span><span style="white-space:pre">	</span>
			return lana_enum.lana[i];<span style="white-space:pre">				</span>//这里我仅测试第一块网卡所以返回;<span style="font-family: Arial, Helvetica, sans-serif;">															</span><span style="font-family: Arial, Helvetica, sans-serif;">}</span>
	}
	else
		return -1;
}
这个端代码会返回第一块以太网卡的编号,然后我就可以做操作了;

省略一些.....

获取网卡状态首先要增加一个“操作名字”,这个名字目测是临时的,程序结束就没了;


BOOL NBAddName(int nLana, LPCSTR szName)
{
	NCB ncb;
	memset(&ncb, 0, sizeof(ncb));					//清空NCB结构体
	ncb.ncb_command = NCBADDNAME;					//NCBDDNAME 命令
	ncb.ncb_lana_num = nLana;
	//将szName赋值到ncb.ncb_name中
	MakeNetbiosName((char *)ncb.ncb_name, szName);
	Netbios(&ncb);
	NBCheck(ncb);
	return (NRC_GOODRET == ncb.ncb_retcode);
}

szName就是添加的操作名字 ,然后我们可以根据操作名字还获取其他操作,比如NCBSTAT

BOOL NBAdapterStatus(int nLana, PVOID pBuffer, int cbBuffer, LPCSTR szName)
{
	NCB ncb;
	memset(&ncb, 0, sizeof(ncb));					//..
	ncb.ncb_command = NCBASTAT;
	ncb.ncb_lana_num = nLana;
	ncb.ncb_buffer = (PUCHAR)pBuffer;
	ncb.ncb_length = cbBuffer;
	//设置参数ncb.ncb_callname
	MakeNetbiosName((char *)ncb.ncb_callname, szName);
	Netbios(&ncb);
	NBCheck(ncb);
	return (NRC_GOODRET == ncb.ncb_retcode);
}

这些算是入门操作吧,其他你可以去执行NetBios了不是么,然后就可以扩展其他程序了,什么获取MAC什么的..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值