怎么读取到网络上的任一台机器的网卡的MAC地址?

Thumb168 2002-07-06 05:43:08
我看过一个软件,可以计取局域网络上机器网卡的MAC地址,不知道是怎么实现的,不知道大家有没有好的办法!
...全文
39 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
NowCan 2002-11-29
  • 打赏
  • 举报
回复
SendARP只用于Win2000以上系统
sczyq 2002-11-29
  • 打赏
  • 举报
回复
// unit1.H
#include <WinSock.hpp>

//------------------------------------------------------------------
// unit1.cpp
//------------------------------------------------------------------#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include <iphlpapi.h>

#pragma comment (lib, "ws2_32.lib")
#pragma comment (lib, "C:\Program Files\Borland\CBuilder6\Lib\Psdk\Iphlpapi.lib")
//------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString MacAddress = GetRemoteMACAddress(Edit1->Text);
for (int i=5;i>0;i--) MacAddress.Insert("-",i*2+1);
Edit2->Text = MacAddress;
}
//------------------------------------------------------------------
AnsiString __fastcall TForm1::GetRemoteMACAddress(AnsiString DestIP)
{
unsigned char MacAddress[6];
ULONG MacLen = 6;
if (SendARP(inet_addr(DestIP.c_str()), 0,
(PULONG)&MacAddress, &MacLen) == NO_ERROR)
return IntToHex((int)MacAddress[0],2)
+ IntToHex((int)MacAddress[1],2)
+ IntToHex((int)MacAddress[2],2)
+ IntToHex((int)MacAddress[3],2)
+ IntToHex((int)MacAddress[4],2)
+ IntToHex((int)MacAddress[5],2);
else return "????????????";
}

blankman 2002-07-07
  • 打赏
  • 举报
回复
我做过截取所有局域网内ip曾数据包的程序,好像要截取mac地址得该网卡驱动或是改写dll,具体的方法我也不太清楚,如果找到的话麻烦转告一下.yyqmails@163.com
wyb_Ultra 2002-07-06
  • 打赏
  • 举报
回复
应该有API函数的,我有一本Delphi的书上有,可惜不在身边。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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