www.pudn.com > 5.rar > 5.Cpp


#include"stdafx.h" 
#include 
#include 
#include 
#include  
#include  
#include "Packet32.h" 
#include"Ntddndis.h" 
#pragma comment(lib,"Packet.lib") 
typedef struct DLCHeader 
{ 
unsigned char      DesMAC[6]; 
unsigned char      SrcMAC[6]; 
unsigned short     Ethertype; 
} DLCHEADER; 
typedef struct ARPFrame 
{ 
unsigned short       HW_Type; 
unsigned short       Prot_Type; 
unsigned char        HW_Addr_Len; 
unsigned char        Prot_Addr_Len; 
unsigned short       Flag; 
unsigned char        Send_HW_Addr[6]; 
unsigned char        Send_Prot_Addr[4]; 
unsigned char        Targ_HW_Addr[6]; 
unsigned char        Targ_Prot_Addr[4]; 
unsigned char        padding[18]; 
}ARPFRAME; 
typedef struct ARPPacket 
{ 
DLCHEADER    dlcHeader; 
ARPFRAME     arpFrame; 
}*PARPPACKET; 
ARPPacket ARPPACKET; 
 
 
#include 
#include 
#include"h.h" 
int transIP(char *,unsigned char *); 
int transMAC(char *,unsigned char *); 
LPADAPTER lpAdapter; 
LPPACKET lpPacket; 
bool Send(); 
void main(int argc,char *argv[]) 
{ 
if(argc!=6) 
{ 
cout<<"输入格式错误"<'9')&&ip[i]!='.') 
{ 
cout<<"输入ip:"<3) 
{ 
cout<<"输入ip:"<3) 
{ 
cout<<"输入ip:"<'9') j++; 
a[i]=(unsigned char)atoi(ip+j); 
while(*(ip+j)>='0'&&*(ip+j)<='9') j++; 
} 
return 1; 
} 
int transMAC(char *argv,unsigned char *b) 
{ 
char mac[18]; 
int i=0,j=0,k=0; 
strcpy(mac,argv); 
int m=strlen(argv); 
for(i=0;i':'&&mac[i]<'A')||(mac[i]>'Z'&&mac[i]<'a')||mac[i]>'z') 
{ 
cout<<"shuru mac:"<2) 
{ 
cout<<"shuru mac:"<5) 
{ 
cout<<"shuru mac:"<='0'&&*(mac+j)<='9') 
b[i]=(unsigned char)(*(mac+j)-'0'); 
if(*(mac+j)>='a'&&*(mac+j)<='z') 
b[i]=(unsigned char)(*(mac+j)-'a'+10); 
if(*(mac+j)>='A'&&*(mac+j)<='Z') 
b[i]=(unsigned char)(*(mac+j)-'A'+10); 
j++; 
b[i]*=16; 
if(*(mac+j)>='0'&&*(mac+j)<='9') 
b[i]+=(unsigned char)(*(mac+j)-'0'); 
if(*(mac+j)>='a'&&*(mac+j)<='z') 
b[i]+=(unsigned char)(*(mac+j)-'a'+10); 
if(*(mac+j)>='A'&&*(mac+j)<='Z') 
b[i]+=(unsigned char)(*(mac+j)-'A'=10); 
j++; 
} 
return 1; 
} 
bool Send() 
{ 
char AdapterNameA[8192]; 
char AdapterNameU[2*sizeof(AdapterNameA)]; 
unsigned long AdapterALength=sizeof(AdapterNameA); 
unsigned long AdapterULength=2*sizeof(AdapterNameA); 
DWORD dwVersion=GetVersion(); 
DWORD dwWindowsMajorVersion=(DWORD)(LOBYTE(LOWORD(dwVersion)));; 
if(!(dwVersion>=0x80000000&&dwWindowsMajorVersion>=4)) 
{ 
if(PacketGetAdapterNames(AdapterNameU,&AdapterULength)==FALSE) 
{ 
cout<<"无法得到网卡列表!"<hFile==INVALID_HANDLE_VALUE) 
{ 
cout<<"无法得到网卡,错误码:"<