网络编程
weiyong1999
改变思想、提升能力、不断的自我丰富,此乃人生之一大乐趣。
展开
-
网络编程笔记
1、使用PCAP_OPENFLAG_PROMISCUOUS必须#define HAVE_REMOTE,否则编译报错。pcap_open(d->name,65535,PCAP_OPENFLAG_PROMISCUOUS,1000,NULL,errorBuf)2、常用结构在windows/linux下有下面结构:sockaddr结构--------这个结构不常用一般sockaddr_ins原创 2013-04-04 13:01:19 · 552 阅读 · 0 评论 -
分类的信息扫描
/**分类的信息扫描算法1:1、按照分类的id顺序开始(主分类id必然在子分类的前面)2、用数组结构记录所有分类信息——为避免分类的层次过深不好寻找某分类的信息,利用类似线索二叉树的扫描方式,实现快速定位分类,一个分类关系的数组(这个是有层次的),一个是线性的数组(一维的就可以了,方便索引)。3、扫描到主的数据就添加到关系数组的顶级层4、扫描到子的数据就添加到关系数组的顶级层的原创 2013-08-05 14:46:25 · 587 阅读 · 0 评论 -
使用iphlpapi动态链接库函数实现ping功能
BOOL CAutoDlg::Ping(){ typedef HANDLE (WINAPI * pCreate)(VOID); typedef BOOL (WINAPI *pClose)(HANDLE); typedef DWORD (WINAPI *pSend)(HANDLE,IPAddr,LPVOID,WORD,PIP_OPTION_INFORMATION,LPVOID,DWORD,D原创 2013-04-11 22:56:34 · 1195 阅读 · 0 评论 -
libpcap使用
libpcap使用libpcap是一个网络数据包捕获函数库,功能非常强大,Linux下著名的tcpdump就是以它为基础的。今天我们利用它来完成一个我们自己的网络嗅探器(sniffer)首先先介绍一下本次实验的环境:Ubuntu 11.04,IP:192.168.1.1,广播地址:192.168.1.255,子网掩码:255.255.255.0可以使用下转载 2013-03-11 00:09:01 · 710 阅读 · 0 评论 -
几种常用数据包结构体
/*以太网帧头格式结构体 14个字节*/typedef struct ether_header{ unsigned char ether_dhost[6]; unsigned char ether_shost[6]; unsigned short ether_type;}ETHERHEADER,*PETHERHEADER;/*以ARP字段结构体 28个字节*/typedef str原创 2013-03-10 21:26:00 · 3063 阅读 · 2 评论 -
基于WINPCAP编写的第二程序
#include#ifndef WIN32 #include #include#else #include#endifvoid ifprint(pcap_if_t *d);int main(){ pcap_if_t *alldevs; pcap_if_t *d; int i=0; char errbuf[PCAP_ERRBUF_SIZE+1]; char sourc原创 2013-03-10 13:56:00 · 568 阅读 · 0 评论 -
WinInet, WinHttp, Winsock, ws2_32的基本解释
在Windows平台进行网络程序开发, 可以使用不同的库, 但是最常用的还是微软自己开发的库。具体说来,有: (1)Winsock,工作于网络层和传输层的开发库,对于编写TCP,UDP,以及原始IP通信程序非常合适。函数原形也基本符合Unix socket标准。Windows平台上的大多数程序,如QQ,讯雷等都基于其开发。 (2)ws2_32,是Winsock的升级转载 2013-04-09 00:26:56 · 601 阅读 · 0 评论 -
基于winpcap编写的第三个程序
#include "pcap.h"void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data);main(){ pcap_if_t *alldevs; pcap_if_t *d; int inum; int i=0; pcap_t *adhandle;原创 2013-03-10 15:11:06 · 837 阅读 · 0 评论 -
第一个基于winpcap编程的程序
#includeint main(){ pcap_if_t *alldevs; pcap_if_t *d; int i=0; char errbuf[PCAP_ERRBUF_SIZE]; if(pcap_findalldevs(&alldevs,errbuf)==-1){ fprintf(stderr,"Error in pcap_findalldevs: %s",errb原创 2013-03-10 12:57:34 · 672 阅读 · 0 评论 -
winpcap环境部署问题
Winpcap是windows平台下的一个专业Winpcap是一个强大的网络开发库,可以实现许多功能:获取可用的网络适配器;获取指定适配器信息(比如名称和描述信息);捕获指定网卡的数据封包;发送数据封包;过滤捕获的包以获取特定包等。 1. 到官网www.winpcap.org下载安装winpcap,为应用程序的运行做准备,如wireshark就需要先安装此包;转载 2013-03-10 11:48:08 · 2969 阅读 · 1 评论 -
SOCKET编程c/s模式(阻塞模式下的)
网络字节顺序不同的计算机存放多字节值的顺序不同,有的机器在起始地址存放低位字节(低位先存),有的机器在起始地址存放高位字节(高位先存)。基于Intel的CPU,即我们常用的PC机采用的是低位先存。为保证数据的正确性,在网络协议中需要指定网络字节顺序。TCP/IP协议使用16位整数和32位整数的高位先存格式。客户机/服务器模式在操作过程中采取的是主动请求的方式。 首先服务原创 2013-03-08 23:45:08 · 3033 阅读 · 0 评论