VS6.0关于网卡管理的大杂烩之一

如何从固件中识别全志H5处理器?boot0与设备树实战方法 在嵌入式开发中,固件(Firmware)是连接硬件与软件的桥梁,而正确识别处理器类型是固件适配与刷机的前提。通过分析固件中的boot0签名(如eGON.BT0)、内核镜像架构(AArch64或ARM32)以及设备树(Device Tree)中的compatible字段,可以准确区分全志H5与H3等相似芯片。这一方法不仅能应对标签错误、丝印模糊等常见问题,也适用于其他SoC的固件逆向场景。结合串口日志、系统节点(/proc/cpuinfo、/proc/device-tree/compatible)以及刷机故障 阅读详情

第一:应用 Netbios 函数获取网卡地址(NetAPI32.Lib)

应用心得:

XP2

MS XP Professional 2002 XP2

集成网卡

Intel(R) PRO/100 VE Network Connection

PCI网卡均可使用

Realtek RTL8139 Family PCI Fast Ethernet NIC

#include "nb30.h"  //NCB结构定义
#pragma comment(lib, "NetAPI32.Lib")  //Netbios 函数
缺点:仅能获取已连接上的网络连接,没有插入网线,连接被禁用的都无法获取

    NetBIOS中所用的函数声明、常数等等均是在头文件nb30.h内定义的,nb30.h中一些类型在wtypes.h中定义,因此一般在网络程序先include "wtypes.h"再nb30.h。另外,使用NetBIOS还须连接库NetAPI32.Lib。调用NetBIOS函数时,可使用NetBIOS中提供的一个唯一的函数调用 Netbios(&ncb);

代码实例:

#include "nb30.h"  //NCB结构定义
#pragma comment(lib, "NetAPI32.Lib")  //Netbios 函数

bool AdaptersInfo(int nAdapter_num, TCHAR * tchMac_addr)
{
 //重置网卡
 NCB ncb = {0};
 memset(&ncb, 0, sizeof(ncb));
 ncb.ncb_command  = NCBRESET;
 ncb.ncb_lana_num = nAdapter_num;
 if( Netbios(&ncb) != NRC_GOODRET )
 {
  //出错
  sprintf(tchMac_addr, "%s0x%0x", "bad (NCBRESET): ", ncb.ncb_retcode);
  return 0;
 }
 
 //取得网卡的状态块
 memset(&ncb, 0, sizeof(ncb));
 ncb.ncb_command  = NCBASTAT;
 ncb.ncb_lana_num = nAdapter_num;
 strcpy((char *) ncb.ncb_callname, "*");
    struct ASTAT
 {
  ADAPTER_STATUS adapt;
  NAME_BUFFER NameBuff[30];
 } Adapter;
 memset(&Adapter, 0, sizeof(Adapter));
 ncb.ncb_buffer = (unsigned char *)&Adapter;
 ncb.ncb_length = sizeof(Adapter);
 
 
 //仅能获取已连接的网卡信息
 if( Netbios(&ncb) == 0 )
 {
  char chMAC[18] = {0};
  sprintf(chMAC, "%02X:%02X:%02X:%02X:%02X:%02X",
   int(Adapter.adapt.adapter_address[0]),
   int(Adapter.adapt.adapter_address[1]),
   int(Adapter.adapt.adapter_address[2]),
   int(Adapter.adapt.adapter_address[3]),
   int(Adapter.adapt.adapter_address[4]),
   int(Adapter.adapt.adapter_address[5]));
  
  memset(tchMac_addr, 0, sizeof(tchMac_addr));
  memcpy(tchMac_addr, chMAC, sizeof(chMAC));
  return 1;
 }
 else
 {
  sprintf(tchMac_addr, "%s%d", "", ncb.ncb_retcode);
  tchMac_addr = "bad (NCBASTAT): ";
  return 0;
 }
}

 


void GetNICInfo()
{
 LANA_ENUM AdapterList;
 memset(&AdapterList, 0 ,sizeof(AdapterList));
 NCB ncb;
 memset(&ncb, 0, sizeof(NCB));
 ncb.ncb_command = NCBENUM; //枚举网卡
 ncb.ncb_buffer  = (unsigned char *)&AdapterList;
 ncb.ncb_length  = sizeof(AdapterList);
 Netbios(&ncb);
 
 for(int i= 0; i<AdapterList.length; i++)
 {
  TCHAR tchMac_addr[18] = {0};
  if(AdaptersInfo((int)AdapterList.lana[i], tchMac_addr))
  {
   AfxMessageBox(tchMac_addr);
  }
  else
  {
   AfxMessageBox(tchMac_addr);
  }  
 }
}

代码应用:调用GetNICInfo()即可,网卡地址存放于 tchMac_addr 变量

附相关Netbios命令简介

NETENUM:枚举系统的网卡数量,不是标准的 NetBIOS 3.0 命令

NCBRESET:重置网卡。网卡在接受新的NCB命令之前必须重置。

NCBASTAT:接受网卡的状态信息。网卡地址详细信息存入于 ADAPTER_STATUS::adapter_address[]的(0-5)中

(a)、NCB结构简介

/* 

memset(ncb.ncb_callname, 0x20, NCBNAMSZ-1);
strcpy((char*)ncb.ncb_callname, (LPCTSTR)tchBiosName);  

ncb.ncb_callname[strlen(tchBiosName)] = 0x20;
ncb.ncb_callname[NCBNAMSZ] = 0x0; 
*/

.ncb_callname:由16个字节组成,前15个字节为ASCII码,若不满,要用空格填满。这里最后一字节为NULL(0x0)

深入浅出:聊聊服务器BIOS里SMMU和SPCR到底是什么,以及为什么它们会和RAID卡‘打架’ 本文深入解析服务器BIOS中SMMU和SPCR的功能及其与RAID卡的冲突机制。SMMU作为硬件级地址翻译器,虽能提升效率,却可能与特定RAID卡固件不兼容;SPCR则因占用I/O空间导致资源冲突。文章提供了详细的诊断方法和解决方案,帮助运维人员快速定位和解决存储子系统问题。 阅读详情

相关推荐

MPC8379E PCIe控制器中断与地址映射实战解析

在嵌入式系统开发中,PCI Express(PCIe)总线是实现高速外设互联的核心技术,其高带宽和低延迟特性使其成为处理器与外部设备通信的关键通道。理解PCIe协议栈是基础,而掌握其控制器的寄存器配置,特别是中断与地址映射机制,则是实现高效稳定数据交互的核心。中断机制如同系统的神经末梢,通过状态寄存器组(如PEX_CSWDISR、PEX_CSMISR)实时上报DMA完成、链路错误等事件,其w1c(写1清除)操作规范是避免中断风暴的关键。地址映射则通过地址转换窗口(ATMU)硬件,在处理器本地地址域与PCIe

dianpi2993的博客 480

vc6 获取本机所有mac地址

建立一个对话框程序,在project/setting/link中增加一个netapi32.lib 1.include 一个头文件 #include 2.添加变量 typedef struct _ASTAT_ { ADAPTER_STATUS adapt; NAME_BUFFER NameBuff [30]; }ASTAT, * PASTAT; ASTAT Adapter; 3.添

luck_good的专栏 3364

Ubuntu上用Docker Compose部署WordPress的生产级实践

WordPress 是全球最主流的开源内容管理系统,其运行依赖 PHP、MySQL 和 Web 服务器等多组件协同;Docker Compose 作为一种声明式容器编排工具,能将这些异构服务封装为可复现、可版本化、可隔离的运行单元;在 Ubuntu 这一稳定且广泛支持的 Linux 发行版上实施该方案,既规避了系统级依赖冲突(如 PHP 版本混杂、MySQL 认证插件不兼容),又天然具备环境一致性、快速回滚与安全隔离等工程优势;典型应用场景包括中小企业官网快速上线、开发测试环境标准化、WordPress 安

368

关于获取网卡信息的一点消息

建议使用高版本的VS软件进行编译,VC6.0缺乏相应SDK,不过VS2013确实耗内存,不好意思说自己自己的电脑配置问题,T^T: #include #include #include #pragma comment(lib,"Iphlpapi.lib") int main() { PIP_ADAPTER_INFO pAdapterInfo; PIP_ADAPTER_INFO

u011587666的专栏 467

VS2008 使用API函数获取网卡信息及状态

使用windows sdk提供的API函数GetAdaptersInfo获得本机所有网卡的网卡名、网卡描述、网卡MAC地址、网卡IP、网卡类型等信息,并用IP_ADAPTER_INFO结构体存储,使用GetIfEntry获取网卡的状态,可有效判断出网卡通讯是否正常,是否插入网线等......

获取本机网卡信息,Visual C++ 6.0

获取本机上的所有网卡设备信息,VC 6.0

VC++监控网卡状态

VC++监控网卡状态 一般情况下,我们只获取网卡IP就够了,但是今天有个需求,需要监控网卡状态,经查找,需要使用COM技术实现,核心Class如下: 微软在WINDOWS VISTA之后提供了一个叫NLA(Network List Manager API)的接口,用于获取网络状态变化通知的一个接口。以COM技术实现。 主要导出的COM接口如下: IEnumNetworkConnecti

笨笨D幸福 - 后花园 4438

VS Code + ESP-IDF:离线环境配置与示例工程编译全指南

本文详细介绍了在VS Code中离线配置ESP-IDF开发环境的完整流程。针对国内开发者常遇到的网络问题,指南提供了从Python环境准备、获取离线安装包、运行安装器到VS Code插件配置与示例工程编译的全套解决方案,确保环境搭建稳定、可控且高效。

weixin_28842367的博客 403

使用OpenVSwitch、netns构建复杂的虚拟网络

http://www.tuicool.com/articles/mAn6ziB 前言 虚拟网络真的挺复杂的, 这次将所学的知识”大杂烩”一下, 必须要有一些基础的知识才能看懂, 比如 ip netns , openvswitch 以后有机会再写这些基础的 – OpenVSwitch是基于Apache License 2.0的, 在Linux中实现多层虚拟交

2120

无人机WIFI集群组网技术详解及成本分析

无人机WIFI集群组网技术是指利用无人机作为移动平台,通过集成高性能的WIFI模块,实现多架无人机之间以及无人机与地面控制站之间的无线通信组网。在协议层面,无人机WIFI集群组网需要遵循标准的无线通信协议,如IEEE 802.11系列(即WIFI标准),同时可能还需定制或优化路由协议、媒体访问控制(MAC)协议等,以确保高效、可靠的数据传输。数据安全与隐私保护:无人机集群组网中传输的数据可能涉及敏感信息,需采取加密、认证等安全措施,确保数据传输的安全性和用户隐私的保护。根据性能不同,价格差异较大。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 1583

华为防火墙双线路配置实战:5分钟搞定主备自动切换(含健康检查避坑指南)

本文详细介绍了华为防火墙双线路配置实战,包括主备自动切换和健康检查机制的优化技巧。通过智能健康检查机制,华为防火墙能实现毫秒级故障自动切换,确保网络高可用性。文章提供了从架构设计到实战配置的全流程指南,并分享了常见配置误区与解决方案,帮助中小企业快速搭建稳定可靠的网络架构。

weixin_30872337的博客 604

NanoPi OpenWrt固件实战:5步解决嵌入式路由器性能瓶颈

NanoPi系列开发板配合深度优化的OpenWrt固件,能够为家庭网络和小型企业提供高性能路由解决方案。针对常见的网络延迟、吞吐量不足、硬件资源利用率低等问题,这款基于immortalwrt源码的定制固件通过Turbo ACC网络加速技术,实现了千兆网络的极致性能优化。本文将采用问题解决导向的结构,为您提供完整的部署、配置和优化实战指南。 ## 痛点分析:为什么传统OpenWrt固件无法发挥Na

gitblog_00836的博客 157

ThingsBoard实战指南:RPC命令下发与设备交互详解

本文深入解析了ThingsBoard平台中RPC命令下发的核心机制与实战应用。通过对比客户端与服务端RPC模式,详细阐述了从仪表盘控件配置到设备端Python代码响应的完整双向交互流程,并提供了常见问题排查与进阶优化技巧,帮助开发者构建可靠、实时的物联网设备控制系统。

weixin_29168153的博客 212

netbios的简单应用

转自http://www.cnblogs.com/dugunangong/archive/2012/08/02/2620368.html 众所周知,一个网卡对应唯一MAC地址,对一些应用程序来说,获取网卡MAC地址有时是必要的,使用VC提供的NetBIOS网络编程接口可以方便获取网卡MAC地址。NetBIOS 中所用的函数声明、常数等等均是在头文件nb30.h内定义的,nb30.h中一

gongfupanda2的专栏 908

【Go语言实战】(2) Gin+Vue 电子商城

618来!!不用纠结去哪里剁手了!直接自己安排一个商场不香吗??

面向生活编程 4827

Python爬虫教程:抓取电商网站评论(以淘宝和京东为例)

通过本文的介绍,我们学会了如何使用Python编写爬虫,抓取淘宝和京东等电商平台的商品评论数据。我们介绍了如何使用电商平台提供的开放API以及如何通过模拟浏览器来抓取动态加载的数据。此外,我们还讨论了如何应对反爬虫技术,如何存储抓取的数据等。爬取电商平台的数据是一个强大的工具,能够为市场分析、消费者行为研究、产品优化等领域提供有力的支持。然而,在使用爬虫技术时,我们必须遵循法律法规,尊重平台的隐私政策,避免滥用数据。

2201_76125261的博客 1737

VS2017 WinPcap的配置及简单的使用demo

一般涉及到网络编程,我们会用上层的socket相关API进行,但有些时候我们需要从底层进行抓包,在Windows上,我们可以用WinPcap来做这件事。 官网地址:https://www.winpcap.org/install/default.htm 首先在上面圈中的两个地方分别下载安装包和开发包。 然后先安装(注意这个是必须先做的,不然哪怕运行代码也会失败),安装一路next就行了,里面有一...

weixinhum 6212

YOLO 线性小目标涨点|3890 张输电导线散股 VOC+YOLO 单类别数据集实战,无人机电力缺陷巡检全流程落地

架空输电导线是电网能量传输核心载体,长期受风力摆动、雷击、腐蚀、外力撞击作用,外层铝股极易出现断裂散股故障。导线散股初期仅少量铝丝开裂,肉眼与无人机远距离航拍下属于细长微弱线性小目标;若未及时发现,散股会持续扩张,引发导线过热、断线、大面积停电重大电力安全事故。传统人工巡检存在多重行业痛点:山区、跨江河线路人员无法攀爬登杆,高空作业人身坠落风险极高;无人机单次航拍产出数千张高清图片,人工逐帧筛查微小散股耗时 3-5 天,阴天、逆光、植被遮挡场景漏检率超 45;

lin_xiu的博客 52
上一篇: RGB颜色表
下一篇: 初始化操作小结
PerfectToday
博客等级 码龄18年 46粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值