如何发送icmp,igmp包呢?(50分)

  • 主题发起人 主题发起人 boy1979
  • 开始时间 开始时间
ICMP属于原始套接字
Socket s
s = Socket(AF_INET,SOCK_RAW,IPPROTO_ICMP) ;
s = WSASocket(AF_INET,SOCK_RAM,IPPROTO_ICMP,NULL,0,WSA_FLAG_OVERLAPPED)
有一本书讲的挺好
《Windows网络编程技术》
微软出版的
 
ICMP的实现就是ping,搜一下ping,有很多答案。
IGMP似乎比较困难,不太清楚。
 
你用 Winsock2 API 可以很快做出发送icmp,igmp包的程序啊!只要定义一下IP头即可!
ICMP为Protocol 1,IGMP为Protocol 2。
例如 IP_Protocol := $11; 即为UDP协议!
用 Send() 就可以发送IP包了 send( TSocket, byte, Datalength, 0 );
其实 IGMPnuke之类的HACK软件不是很多吗?^_^
下面分别是icmp,igmp包头信息定义!
TIcmpEchoReply = record
Address : TIPAddr;
Status : ULONG;
RoundTripTime : ULONG;
DataSize : ULONG;
Reserved : ULONG;
Data : Pointer;
Options : PIPOptionInformation;
end;

struct IGMP_Header {
unsigned char type, code;
unsigned short cksum;
struct in_addr group;
}
 
我给你一个吧.
 
接受答案了.
 
后退
顶部