Ⅰ 【c++ 课程设计】 简单的网络嗅探器 目的与要求:实现网络层抓包,并对获得包的源和目的地址、端口、协议等
#include <winsock2.h> /*windows socket的头文件,系统定义的*/
#include <windows.h>
#include <ws2tcpip.h>
#include <stdio.h>
#include <stdlib.h>
#pragma comment(lib,"ws2_32.lib") /*链接API相关连的Ws2_32.lib静态库*/
#define MAX_HOSTNAME_LAN 255
#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)
#define MAX_ADDR_LEN 16
struct ipheader {
unsigned char ip_hl:4; /*header length(报头长度)*/
unsigned char ip_v:4; /*version(版本)*/
unsigned char ip_tos; /*type os service服务类型*/
unsigned short int ip_len; /*total length (总长度)*/
unsigned short int ip_id; /*identification (标识符)*/
unsigned short int ip_off; /*fragment offset field(段移位域)*/
unsigned char ip_ttl; /*time to live (生存时间)*/
unsigned char ip_p; /*protocol(协议)*/
unsigned short int ip_sum; /*checksum(校验和)*/
unsigned int ip_src; /*source address(源地址)*/
unsigned int ip_dst; /*destination address(目的地址)*/
}; /* total ip header length: 20 bytes (=160 bits) */
typedef struct tcpheader {
unsigned short int sport; /*source port (源端口号)*/
unsigned short int dport; /*destination port(目的端口号)*/
unsigned int th_seq; /*sequence number(包的序列号)*/
unsigned int th_ack; /*acknowledgement number(确认应答号)*/
unsigned char th_x:4; /*unused(未使用)*/
unsigned char th_off:4; /*data offset(数据偏移量)*/
unsigned char Flags; /*标志全*/
unsigned short int th_win; /*windows(窗口)*/
unsigned short int th_sum; /*checksum(校验和)*/
unsigned short int th_urp; /*urgent pointer(紧急指针)*/
}TCP_HDR;
typedef struct udphdr {
unsigned short sport; /*source port(源端口号)*/
unsigned short dport; /*destination port(目的端口号)*/
unsigned short len; /*udp length(udp长度)*/
unsigned short cksum; /*udp checksum(udp校验和)*/
}UDP_HDR;
void main(){
SOCKET sock;
WSADATA wsd;
DWORD dwBytesRet;
unsigned int optval = 1;
unsigned char *dataudp,*datatcp;
int i,pCount=0,lentcp, lenudp;
SOCKADDR_IN sa,saSource, saDest;
struct hostent FAR * pHostent;
char FAR name[MAX_HOSTNAME_LAN];
char szSourceIP[MAX_ADDR_LEN], szDestIP[MAX_ADDR_LEN],RecvBuf[65535] = {0};
struct udphdr *pUdpheader;
struct ipheader *pIpheader;
struct tcpheader *pTcpheader;
WSAStartup(MAKEWORD(2,1),&wsd);
if ((sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP))==SOCKET_ERROR)
exit(1);
gethostname(name, MAX_HOSTNAME_LAN);
pHostent = gethostbyname(name);
sa.sin_family = AF_INET;
sa.sin_port = htons(6000);
memcpy(&sa.sin_addr.S_un.S_addr, pHostent->h_addr_list[0], pHostent->h_length);
bind(sock, (SOCKADDR *)&sa, sizeof(sa)); /*bind()设定自己主机的IP地址和端口号*/
if ((WSAGetLastError())==10013)
exit(1);
WSAIoctl(sock, SIO_RCVALL, &optval, sizeof(optval), NULL, 0, &dwBytesRet, NULL, NULL);
pIpheader = (struct ipheader *)RecvBuf;
pTcpheader = (struct tcpheader *)(RecvBuf+ sizeof(struct ipheader ));
pUdpheader = (struct udphdr *) (RecvBuf+ sizeof(struct ipheader ));
while (1){
memset(RecvBuf, 0, sizeof(RecvBuf));
recv(sock, RecvBuf, sizeof(RecvBuf), 0);
saSource.sin_addr.s_addr = pIpheader->ip_src;
strncpy(szSourceIP, inet_ntoa(saSource.sin_addr), MAX_ADDR_LEN);
saDest.sin_addr.s_addr = pIpheader->ip_dst;
strncpy(szDestIP, inet_ntoa(saDest.sin_addr), MAX_ADDR_LEN);
lentcp =(ntohs(pIpheader->ip_len)-(sizeof(struct ipheader)+sizeof(struct tcpheader)));
lenudp =(ntohs(pIpheader->ip_len)-(sizeof(struct ipheader)+sizeof(struct udphdr)));
if((pIpheader->ip_p)==IPPROTO_TCP&&lentcp!=0){
printf("*******************************************\n");
pCount++;
datatcp=(unsigned char *) RecvBuf+sizeof(struct ipheader)+sizeof(struct tcpheader);
printf("-TCP-\n");
printf("\n目的IP地址:%s\n",szDestIP);
printf("\n目的端口:%i\n",ntohs(pTcpheader->dport));
printf("datatcp address->%x\n",datatcp);
printf("size of ipheader->%i\n",sizeof(struct ipheader));
printf("size of tcpheader->%i\n",sizeof(struct tcpheader));
printf("size of the hole packet->%i\n",ntohs(pIpheader->ip_len));
printf("\nchar Packet%i [%i]=\"",pCount,lentcp-1);
for (i=0;i<lentcp;i++){
printf("\\x%.2x",*(datatcp+i));
if (i%10==0)
printf("\"\n\"");
}
printf("\";\n\n\n");
for (i=0;i<lentcp;i++){
if( *(datatcp+i)<=127&&*(datatcp+i)>=20)
printf("%c",*(datatcp+i));
else
printf(".");
}
printf("\n\n*******************************************\n");
}
if((pIpheader->ip_p)==IPPROTO_UDP&&lentcp!=0){
pCount++;
dataudp=(unsigned char *) RecvBuf+sizeof(struct ipheader)+sizeof(struct udphdr);
printf("-UDP-\n");
printf("\n目的IP地址:%s\n",szDestIP);
printf("\n目的端口:%d\n",ntohs(pTcpheader->dport));
printf("UDP数据地址:%x\n",dataudp);
printf("IP头部长度:%i\n",sizeof(struct ipheader));
printf("UDP头部长度:%i\n",sizeof(struct udphdr));
printf("包的大小:%i\n",ntohs(pIpheader->ip_len));
printf("\nchar Packet%i [%i]=\"",pCount,lenudp-1);
for (i=0;i<lenudp;i++){
printf("\\x%.2x",*(dataudp+i));
if (i%10==0)
printf("\"\n\"");
}
printf("\";\n\n\n");
for (i=0;i<lenudp;i++){
if( *(dataudp+i)<=127&&*(dataudp+i)>=20)
printf("%c",*(dataudp+i));
else
printf(".");
}
printf("\n\n*******************************************\n");
}
}
}
Ⅱ 计算机网络课程设计
恐怕只悬赏分就不行了吧……
1、2、3可以上网找一下,有很多源代码
4建议你找一下WinPCAP的资料,对实现这个有很大帮助
Ⅲ 基于java的课程网络考试系统的设计与实现 论文及代码 谁有啊,毕业设计,跪求,急啊,有什么办法
专业定制爬虫,安装版50,附源码100,
私人编程家教300/月
大中型软件定制
网站建设维护
毕业设计
有意回复
Ⅳ 跪求《基于Java的网络教学互动交流系统设计与实现》的源代码!
为你提供一份针对基于Java的网络教学互动交流系统的适用于初学者的代码,
如果你有回更多的要求也可以告答诉我们,,带着你的问题和Email来找我,有可能帮你,但是绝对救急,使用网络_Hi给我留言,
此回复对于所有需求和和来访者有效,
ES:\\
Ⅳ 基于.NET的教学网络辅助平台的设计与实现 本科毕业论文用asp.net与sql server 2000怎么做
这年头好像基本上没有用2000的数据库的吧
Ⅵ 求 一篇网络教学平台设计与实现的论文
可以为你来提供一份的适用于自初学者的网络教学平台设计代码,
还有别的要求么,可以与我们联系,,告诉我你的问题和Email,有可能帮你,不过绝对救急,请用BaiHi为我留言,
此回复针对所有来访者和需求者有效,
ES:\\
Ⅶ 谁有《基于Java的网络教学互动交流系统设计与实现》的源代码,谢谢,毕业设计参考用
有的话,也给我一份,谢谢,[email protected]
Ⅷ 计算机网络课程设计:TCP通信功能实现 要使用到的平台和语言有哪些
很多啊。java的最简单。
eclipse java
visual studio c++ c/c++
只做简单通信不难。
Ⅸ 网络教学系统的设计与实现
本文介绍了笔者承担学校教务部的网络教学辅助系统项目的设计方案和实现技术。系统的设计目标是研发一个辅助班级授课模式的网络教学平台,作为课堂教学延伸的环境和手段,要和传统的课堂教学相结合,更好地满足老师和学生教与学的需求,要为课程的教学提供全过程的支持。系统实现的功能有用户管理、课程管理、教师在线教学管理、学生在线学习、教学沟通以及网络教学论坛等。系统采用JSP动态网页设计技术。
【作者单位】:武汉大学经济与管理学院 武汉430000
【关键词】:班级授课模式;网络教学平台;目标;功能;实现技术
【基金】:武汉大学教务部教改项目
【分类号】:TP311.52
【DOI】:cnki:ISSN:1671-4377.0.2006-05-024
【正文快照】:
随着网络技术、多媒体技术等现代信息技术的迅猛发展,计算机辅助教学系统得到了广泛的应用,远程教学系统、教学网站层出不穷,网络教育也成为当今的热点。本文介绍的系统是笔者承担的武汉大学教务部的实践教学改革项目,与远程教学系统和一般的教学网站不同,目的是为目前在各类学校中占统治地位的以教师主讲为中心的班级授课模式提供一个扩展的网上教学平台。一、系统设计的目标和特点网络教学辅助系统的设计目标是:研发一个辅助班级授课模式的网络教学平台,作为课堂教学延伸的环境和手段,要和传统的课堂教学相结合,更好地满足老师和学生教与…
Ⅹ 网络课堂系统的设计与实现
同学课题请自己好好做