#include "stdafx.h"
#include "ipexport.h"
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <iphlpapi.h>
#include "Winsock2.h"
//需要链接 ws2_32.lib & iphlpapi.lib
int _tmain()
{
HRESULT hr;
IPAddr ipAddr;
ULONG pulMac[2];
ULONG ulLen;
ipAddr = inet_addr ("192.168.1.100");//设备自身的ip
memset (pulMac, 0xff, sizeof (pulMac));
ulLen = 6;
hr = SendARP (ipAddr, 0, pulMac, &ulLen);
printf ("Return %08x, length %8d/n", hr, ulLen);
size_t i, j;
char * szMac = new char[ulLen*3];
PBYTE pbHexMac = (PBYTE) pulMac;
//
// Convert the binary MAC address into human-readable
//
for (i = 0, j = 0; i < ulLen - 1; ++i)
{
j += sprintf (szMac + j, "%02X:", pbHexMac[i]);
}
sprintf (szMac + j, "%02X", pbHexMac[i]);
printf ("MAC address %s/n", szMac);
int a;
scanf("%d",&a);
delete [] szMac;
return 0;
}
//BOOL GetMac(CHAR *IpAddr, BYTE *MacAddr)
//{
// CHAR macAddr[13]={0};
// IPAddr ipAddr;
// ULONG Mac[2];
// ULONG MacLen;
//
// memset (Mac, 0xff, sizeof (Mac));
// MacLen = 6;
// ipAddr=inet_addr(IpAddr);
// DWORD hr = SendARP (ipAddr, 0, Mac, &MacLen);
// if(hr==0)
// {
// PBYTE pbMac = (PBYTE)Mac;
// for (ULONG i=0;i<MacLen;i++)
// {
// MacAddr[i]=pbMac[i];
// }
// }
// else
// {
// return FALSE;
// }
// return TRUE;
//}
//int _tmain(int argc, char* argv[])
//{
// CHAR IpAddr[16]="192.168.1.102";
// BYTE MacAddr[6]="";
// CHAR szMacAddr[18]="";
// GetMac(IpAddr,MacAddr);
// sprintf(szMacAddr,"%02X:%02X:%02X:%02X:%02X:%02X",
// MacAddr[0],MacAddr[1],MacAddr[2],MacAddr[3],MacAddr[4],MacAddr[5]);
// printf ("MAC address %s.\n", szMacAddr);
// int a;
// scanf("%d",&a);
// return 0;
//}
#include "ipexport.h"
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <iphlpapi.h>
#include "Winsock2.h"
//需要链接 ws2_32.lib & iphlpapi.lib
int _tmain()
{
HRESULT hr;
IPAddr ipAddr;
ULONG pulMac[2];
ULONG ulLen;
ipAddr = inet_addr ("192.168.1.100");//设备自身的ip
memset (pulMac, 0xff, sizeof (pulMac));
ulLen = 6;
hr = SendARP (ipAddr, 0, pulMac, &ulLen);
printf ("Return %08x, length %8d/n", hr, ulLen);
size_t i, j;
char * szMac = new char[ulLen*3];
PBYTE pbHexMac = (PBYTE) pulMac;
//
// Convert the binary MAC address into human-readable
//
for (i = 0, j = 0; i < ulLen - 1; ++i)
{
j += sprintf (szMac + j, "%02X:", pbHexMac[i]);
}
sprintf (szMac + j, "%02X", pbHexMac[i]);
printf ("MAC address %s/n", szMac);
int a;
scanf("%d",&a);
delete [] szMac;
return 0;
}
//BOOL GetMac(CHAR *IpAddr, BYTE *MacAddr)
//{
// CHAR macAddr[13]={0};
// IPAddr ipAddr;
// ULONG Mac[2];
// ULONG MacLen;
//
// memset (Mac, 0xff, sizeof (Mac));
// MacLen = 6;
// ipAddr=inet_addr(IpAddr);
// DWORD hr = SendARP (ipAddr, 0, Mac, &MacLen);
// if(hr==0)
// {
// PBYTE pbMac = (PBYTE)Mac;
// for (ULONG i=0;i<MacLen;i++)
// {
// MacAddr[i]=pbMac[i];
// }
// }
// else
// {
// return FALSE;
// }
// return TRUE;
//}
//int _tmain(int argc, char* argv[])
//{
// CHAR IpAddr[16]="192.168.1.102";
// BYTE MacAddr[6]="";
// CHAR szMacAddr[18]="";
// GetMac(IpAddr,MacAddr);
// sprintf(szMacAddr,"%02X:%02X:%02X:%02X:%02X:%02X",
// MacAddr[0],MacAddr[1],MacAddr[2],MacAddr[3],MacAddr[4],MacAddr[5]);
// printf ("MAC address %s.\n", szMacAddr);
// int a;
// scanf("%d",&a);
// return 0;
//}