2024年4月2日发(作者:)
socket抓包程序实验报告
《网络编程与协议分析》课程设计报告
一、课设题目:
局域网数据包抓取与分析软件
二、课设要求:
1) 抓取本地主机所在局域网子网内的所有数据包
2) 分析并显示所抓取数据包的IP头部各字段的信息
3) 分析并显示所抓取数据包的封装在IP数据包内的协议头部字段信息(TCP、
UDP、
ICMP等)
4) 生成日志信息,以文本文档形式保存
三、部分代码
1)初始化套接字
BOOL CTestDlg::SockInit()
{
WSADATA wsa;
if(WSAStartup(MAKEWORD(2,2),&wsa)!=0)
{
AfxMessageBox("WSAStartup fail!");
}
m_sock=socket(AF_INET,SOCK_RAW,0);
if(m_sock==INVALID_SOCKET)
{
AfxMessageBox("socket fail!");
}
SOCKADDR_IN addr;
_family=AF_INET;
_port=htons(5000);
struct hostent FAR * pHostent;
char FAR name[25];
gethostname(name, 25);
pHostent = gethostbyname(name);
memcpy(&_addr.S_un.S_addr,pHostent->h_addr_list[0],pHostent-
>h_len);
if(bind(m_sock,(SOCKADDR *)&addr,sizeof(addr))!=0)
{
AfxMessageBox("bind fail!");
}
DWORD dwBytesRet;
unsigned int optval = 1;
int pCount=0;
if(INVALID_SOCKET==(WSAIoctl(m_sock,SIO_RCVALL,&optval,sizeof(optval
),
NULL, 0, &dwBytesRet, NULL, NULL)))
{
AfxMessageBox("WSAIoctl Fail!");
return false;


发布评论