📄 qwkdz.cpp
字号:
#include "stdafx.h"
#include "Qwkdz.h"
#include "memory.h"
#include "afxconv.h"
#include <nb30.h>
#pragma comment(lib, "ws2_32.lib")
#pragma message("Automatically linking with ws2_32.lib")
#pragma comment(lib, "netapi32.lib")
#pragma message("Automatically linking with netapi32.lib")
//===========================================================================//
// 功能描述:将十六进制的数值转换成十六进制的字串
//
// 入参说明:
// p_dsp : 用于存放转换后的十六进制字串,其大小必须是p_iLen的2倍
// p_hex : 将要转换的十六进制数值
// p_iLen: 标识p_hex的长度
//
// 例 :
// p_dsp = 010203040A0B0C0D
// p_hex = 0x01 0x02 0x03 0x04 0x0A 0x0B 0x0C 0x0D
// p_iLen= 8
LPCSTR GetHostIPXSPXAddr(void)
{
static char szAddress[13];
typedef struct _ASTAT_
{
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff[30];
}ASTAT;
ASTAT adapter;
NCB ncb;
UCHAR uRetCode;
LANA_ENUM lEnum;
memset( &ncb, 0, sizeof(ncb) );
ncb.ncb_command = NCBENUM;
ncb.ncb_buffer = (UCHAR *)&lEnum;
ncb.ncb_length = sizeof(lEnum);
uRetCode = Netbios( &ncb );
for (int index = 0; index < lEnum.length; index++)
{
memset(&ncb, 0, sizeof(ncb));
ncb.ncb_command = NCBRESET;
ncb.ncb_lana_num = lEnum.lana[index];
uRetCode = Netbios(&ncb);
memset(&ncb, 0, sizeof(ncb));
ncb.ncb_command = NCBASTAT;
ncb.ncb_lana_num = lEnum.lana[index];
strcpy( (char*)(ncb.ncb_callname), "* " );
ncb.ncb_buffer = (unsigned char *) &adapter;
ncb.ncb_length = sizeof(adapter);
uRetCode = Netbios(&ncb);
if (uRetCode == 0)
{
sprintf(szAddress,"%02x%02x%02x%02x%02x%02x",
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]);
}
}
return szAddress;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -