十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
截取数据包,可以利用libpcap函数库:
创新互联是一家专注于成都网站设计、做网站与策划设计,灵璧网站建设哪家好?创新互联做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:灵璧等地区。灵璧做网站价格咨询:18980820575
利用libpcap开发网络嗅探器时,一般包含以下几个基本流程:
1)确定捕获网络数据包的网卡。
函数原形:
char *pcap_lookupdev(dev *errbuf);
2)打开网络设备。
函数原形:
pcap_t *pcap_open_live(const char *device, int snaplen, int promisc, int to_ms, char *errbuf)
3)设置过滤条件。
函数原形:
int pcap_compile(pcap_t *p, struct bpf_program *fp, char *str, int optimize, bpf_u_int32 netmask)
4)获取数据包。
函数原形:
const u_char *pcap_next(pcap_t *p, struct pcap_pkthdr *h)
5)关闭网络设备。
函数原形:
void pcap_close(pcap_t *p)
这个不是异常啊,这个是错误类型!!
你的错误类型提示设的太高了,这样适合在开发下使用。你可以在可能出现提示错误行前加上@符号就可以抑制提示错误。
php中档然有throw try catch结果语句,但是除了的是异常,也就是exception类。
你自己看看手册吧
sniffer抓获的是通过网卡传播的报文,你关联的是IP为192.168.1.2的网卡,所有经过该网卡的都会捕获。
另外,这个没有任何错误啊,本来ping就是一去一回啊,ICMP协议的内容了...
ping 192.168.1.2没有报文是因为报文没有经过网卡发送出去,只是在本机处理,所以抓不到
捕获有个高级设置,是可以设置报文方向的,也就是可以设置抓获报文的源IP等信息,你可以通过这个实现你的目的。
TCP协议头最少20个字节,包括以下的区域
TCP源端口(Source Port):16位的源端口其中包含初始化通信的端口。源端口和源IP地址的作用是
标示报问的返回地址。
TCP目的端口(Destination port):16位的目的端口域定义传输的目的。这个端口指明报文接收计算
机上的应用程序地址接口。
TCP序列号(序列码,Sequence Number):32位
TCP应答号(Acknowledgment Number):32位的序列号由接收端计算机使用,重组分段的报文成最初形式。,如果设置了ACK控制位,这个值表示一个准备接收的包的序列码。