社区
网络及通讯开发
帖子详情
如何取得局域网内网卡的物理MAC地址,请高手帮忙,谢谢.
hansyswin
2007-05-01 08:33:48
如何取得局域网内网卡的物理MAC地址,或一个指定IP地址的MAC地址.谢谢了.
...全文
466
15
打赏
收藏
如何取得局域网内网卡的物理MAC地址,请高手帮忙,谢谢.
如何取得局域网内网卡的物理MAC地址,或一个指定IP地址的MAC地址.谢谢了.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hansyswin
2007-05-03
打赏
举报
回复
请各位查分,我发现今天的分有点不正常.谢谢大家!!!
hansyswin
2007-05-03
打赏
举报
回复
谢谢各位,解决了,结贴.
hansyswin
2007-05-03
打赏
举报
回复
yctin(呆呆鱼) : 请问哪里有 Iphlpapi.lib,谢谢.
huzhangyou
2007-05-02
打赏
举报
回复
Also the project on sourceforge.net
http://sourceforge.net/projects/choparp/
huzhangyou
2007-05-02
打赏
举报
回复
Packages required
To download the WinPcap Driver: http://winpcap.polito.it/
To download WinArpSpoofer: http://www.nextsecurity.net/
huzhangyou
2007-05-02
打赏
举报
回复
You can develop it with Winpcap
And see the examples at http://www.codeproject.com/internet/winarpspoof.asp
hansyswin
2007-05-02
打赏
举报
回复
huzhangyou(信仰(http://www.libing.net.cn))
过去是用批处理执行arp来解决的,现在想之间解决它, 请给个例子,或少许详细点,谢谢了.
yctin
2007-05-02
打赏
举报
回复
GetMACAddress("输入IP");
成功返回 MAC Address
失败返回 0
#include <winsock2.h>
#include <stdio.h>
#include <iphlpapi.h>
#pragma comment(lib, "Iphlpapi.lib")
char* __fastcall GetMACAddress(char* ipaddr)
{
HRESULT hr;
IPAddr ipAddr;
ULONG pulMac[2];
ULONG ulLen;
ipAddr = inet_addr(ipaddr);
memset (pulMac, 0xff, sizeof (pulMac));
ulLen = 6;
SendARP (ipAddr, 0, pulMac, &ulLen);
size_t i, j;
char * szMac = new char[ulLen*3];
if (!~pulMac[0] && !~pulMac[1]) {
return 0;
}
PBYTE pbHexMac = (PBYTE) pulMac;
for (i = 0, j = 0; i < ulLen - 1; ++i) {
j += sprintf (szMac + j, "%02X:", pbHexMac[i]);
}
sprintf (szMac + j, "%02X", pbHexMac[i]);
return szMac;
}
void __fastcall TForm1::Button4Click(TObject *Sender)
{
ShowMessage(GetMACAddress("192.168.1.1"));
}
hansyswin
2007-05-02
打赏
举报
回复
季兄,好象只能读出本机的,网内的还是读不出来.
jishiping
2007-05-02
打赏
举报
回复
#include <iptypes.h>
#define ADAPTER_NUM 16
typedef DWORD WINAPI (*GetAdaptersInfoProc)( \
PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen);
class AdapterList
{
public:
AdapterList();
bool GetInfo();
UINT GetNumber() { return num; }
LPCSTR GetError() { return Error; }
PIP_ADAPTER_INFO GetAdapter(UINT index)
{
return index<num ? Adapters[index]
: NULL;
}
private:
UINT num;
BYTE buf[8192];
char Error[256];
PIP_ADAPTER_INFO Adapters[ADAPTER_NUM];
};
AdapterList::AdapterList()
{
num = 0x00;
memset(buf, 0, sizeof(buf));
memset(Error, 0, sizeof(Error));
}
bool AdapterList::GetInfo()
{
DWORD dwLen;
DWORD dwFlags;
DWORD dwError;
HINSTANCE hModule;
PIP_ADAPTER_INFO pAddr;
GetAdaptersInfoProc GetAdaptersInfo;
hModule = LoadLibrary("iphlpapi.dll");
if (hModule == NULL) {
strcpy(Error, "Cannot load iphlpapi.dll");
return false;
}
GetAdaptersInfo = (GetAdaptersInfoProc)
GetProcAddress(hModule, "GetAdaptersInfo");
if (GetAdaptersInfo == NULL) {
strcpy(Error, "Not find funtion GetAdaptersInfo");
FreeLibrary(hModule); return false;
}
num = 0; dwLen = sizeof(buf);
pAddr = (PIP_ADAPTER_INFO)buf;
dwError = GetAdaptersInfo(pAddr, &dwLen);
if (dwError == ERROR_SUCCESS) {
for(; pAddr!=NULL && num<ADAPTER_NUM;
pAddr=pAddr->Next) {
if (pAddr->AddressLength != 0)
Adapters[num++] = pAddr;
}
}
else {
dwFlags = FORMAT_MESSAGE_FROM_SYSTEM;
FormatMessage(dwFlags, 0, dwError, 0,
Error, sizeof(Error), NULL);
}
FreeLibrary(hModule); return bool(num>0);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i, n;
char Addr[32];
AdapterList AdapList;
PIP_ADAPTER_INFO pAdap;
if (!AdapList.GetInfo()) {
ShowMessage(AdapList.GetError());
return;
}
memset(Addr, 0x0000, sizeof(Addr));
for(n=0; n<AdapList.GetNumber(); n++) {
pAdap = AdapList.GetAdapter(n);
memset(Addr, 0x00, sizeof(Addr));
for(i=0; i<pAdap->AddressLength;
i++) {
if (i!=0) Addr[i*3-1] = ' ';
wsprintf(Addr+i*3, "%02X", (int)
((BYTE*)pAdap->Address)[i]);
}
ShowMessage(Addr);
}
}
yctin
2007-05-01
打赏
举报
回复
http://blog.csdn.net/zhzhwu/archive/2006/11/17/1393153.aspx
zwh202342
2007-05-01
打赏
举报
回复
可以参考一下这个
http://www.newasp.net/tech/program/20879.html
huzhangyou
2007-05-01
打赏
举报
回复
arp协议就是用来获取对方机器的MAC地址的
huzhangyou
2007-05-01
打赏
举报
回复
可以考虑发送arp包给局域网的所有机器
hansyswin
2007-05-01
打赏
举报
回复
好象都不能解决问题, 再顶, 希望高手多多指教.谢谢
局域网
查询存活设备
mac地址
直译为媒体存取控制位址,也称为
局域网
地址(LAN Address),MAC位址,以太网地址(Ethernet Address)或
物理
地址(Physical Address),它是一个用来确认网络设备位置的位址。
MAC地址
用于在网络中唯一标示一个
网卡
,一台设备若有一或多个
网卡
,则每个
网卡
都需要并会有一个唯一的
MAC地址
。在任何一块
网卡
(NIC)中烧录的6字节
MAC地址
中,前3个字节体现了OUI,其表明了NIC的制造组织。-N if_addr 显示 if_addr 指定的网络接口的 ARP 项。
什么叫有效
物理
网卡
_什么是
物理
网卡
地址?
网卡
的
物理
地址是什么?
广告用ipconfig查看了自己电脑的
mac地址
前两个知道是什么意思那后面两个是什么意思?现在一般线都会有这3个无线
局域网
适配器,windows10用命令口ipconfig/all就会显示
mac地址
,这3个
网卡
的
mac地址
是相同的,如图,因为wifi现在的协议很多,n,x,ac是现在流行的型号,对应不同的无线速度。如果是安装了虚拟操作系统,比如VM,也会出现多个
网卡
,但是虚拟机的
物理
地址是不同的,...
[转]怎样查看
局域网
内其他机器的
网卡
物理
地址及查询本机的
网卡
物理
地址
由于单位IP与MAC绑定,所以当用多台计算机时蹭IP不太方便。当有闲置IP没有使用时,可以通过修改
网卡
来使用别人的IP。 1. 修改本机管理的
物理
地址:转自http://windows.chinaitlab.com/system/729003.html 在“设备管理器”,定位到“网络适配器”中的
网卡
,我们演示的
网卡
为Realtek RT8169,选中后单击鼠标右键,在弹出的快捷菜单中选...
获取
局域网
计算机
网卡
地址,在
局域网
中使用DOS命令根据IP地址获取多台计算机的
MAC地址
列表...
在
局域网
中,如何通过一台计算机,就可以获取指定IP的多台计算机的
网卡
MAC地址
列表,并生成文件呢?要得到这样的效果,不用任何工具软件,只需要简单的MS-DOS命令就可以解决了,下面俺给大家介绍一下方法,
请
耐心阅读!一、所需文件首先,我们必须制作两个BAT批处理文件,如下图的这两个批处理文件!注意:上述的这两个文件,必须放在同一个目录中。二、文件中的DOS命令代码①arpl.bat文件代码如下@ec...
易语言取
物理
网卡
MAC特征字
易语言取
物理
网卡
MAC转化为特征字,采用了VB、CMD、汇编等等方法。 1、取本机
网卡
物理
地址() 2、取本机所有
网卡
物理
地址 3、CMD取
网卡
物理
地址 4、VB取
网卡
物理
地址 5、汇编取
网卡
物理
地址 6、两种方式返回
网卡
特征码 511遇见易语言软件本地注册验证 通过易语言自动的数据类型:
网卡
信息直接获取 .版本 2 .支持库 eAPI .支持库 spec .局部变量
网卡
特征,
网卡
信息, , "0" .局部变量 n, 整数型
网卡
特征 = 取
网卡
信息列表 () .计次循环首 (取数组.
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章