固定端口ip包截获分析(未齐)

#include <winsock2.h>
#include <windows.h>
#include <ws2tcpip.h>
#include <stdio.h>
#include <stdlib.h>
#pragma comment(lib,"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, ip_v:4; /* this means that each member is 4 bits */
unsigned char ip_tos;
unsigned short int ip_len;
unsigned short int ip_id;
unsigned short int ip_off;
unsigned char ip_ttl;
unsigned char ip_p;
unsigned short int ip_sum;
unsigned int ip_src;
unsigned int ip_dst;
}; /* total ip header length: 20 bytes (=160 bits) */
typedef struct udphdr {
unsigned short sport;
unsigned short dport;
unsigned short len;
unsigned short cksum;
}UDP_HDR;
void main()
{
SOCKET sock;
WSADATA wsd;
DWORD dwBytesRet;
unsigned int optval = 1;
unsigned char *dataudp,*pUdpData;
int QQ,iUdpDataLen;
SOCKADDR_IN sa,saSource, saDest;
struct hostent FAR * pHostent;
char FAR name[MAX_HOSTNAME_LAN];
char szSourceIP[MAX_ADDR_LEN],RecvBuf[65535] = {0};
struct udphdr *pUdpheader;
struct ipheader *pIpheader;
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));
if ((WSAGetLastError())==10013)exit(1);
WSAIoctl(sock, SIO_RCVALL, &optval, sizeof(optval), NULL, 0, &dwBytesRet, NULL, NULL);
pIpheader = (struct ipheader *)RecvBuf;
pUdpheader = (struct udphdr *) (RecvBuf+ sizeof(struct ipheader ));
printf("QQ sniffer V1.1 code powerd by cooldiyer\r\n");
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);
iUdpDataLen =(ntohs(pIpheader->ip_len)-(sizeof(struct ipheader)+sizeof(struct udphdr))); 
if((pIpheader->ip_p)==IPPROTO_UDP&&iUdpDataLen!=0)
{
pUdpData=(unsigned char *) RecvBuf+sizeof(struct ipheader)+sizeof(struct udphdr);
iUdpDataLen=ntohs(pIpheader->ip_len)-(sizeof(struct ipheader)+sizeof(struct udphdr));
if(ntohs(pUdpheader->dport)==8000)
        if(iUdpDataLen%4==0 && iUdpDataLen>0)
            if(pUdpData[0]==0x02 && pUdpData[3]==0x00 && pUdpData[iUdpDataLen-1]==0x03)
            {
                QQ = (pUdpData[7]&0xff);
                QQ = (QQ<<8) + (pUdpData[8]&0xff);
                QQ = (QQ<<8) + (pUdpData[9]&0xff);
                QQ = (QQ<<8) + (pUdpData[10]&0xff);
                printf("IP:%s QQ:%d\r",szSourceIP,QQ); 
            }
  }
}
} 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: IP数据捕获分析程序是一种网络工具,用于截获分析通过网络传输的IP数据。它可以在网络通信过程中实时捕获数据,提供分析数据内容和网络性能的功能。 首先,IP数据捕获分析程序可以用于网络故障排查。通过捕获数据,我们可以分析网络连接是否存在延迟、丢、冲突等问题,进而定位故障原因。例如,我们可以检查数据的源IP地址和目标IP地址,确定网络中的通信路径,并分析各路径上的延迟和丢情况。 其次,IP数据捕获分析程序也可以用于网络安全监测。通过捕获传输的数据,我们可以对网络流量进行实时检测和分析,以发现可能的网络威胁或攻击行为。例如,我们可以分析数据的源IP地址、目标IP地址以及传输的协议和端口,发现潜在的恶意流量,从而加强网络防御和安全策略。 此外,IP数据捕获分析程序还可用于网络性能优化。通过分析数据的网络延迟、丢率、吞吐量等指标,我们可以评估网络性能,并发现网络瓶颈和改进的空间。例如,我们可以通过分析数据的传输时延,确定网络中的瓶颈节点,并采取相应的措施提升网络带宽和优化路由选择。 综上所述,IP数据捕获分析程序是一种重要的网络工具,它通过截获分析数据,帮助我们进行网络故障排查、网络安全监测和网络性能优化。在网络管理和维护中,它发挥着至关重要的作用。 ### 回答2: IP数据捕获分析程序是一种用于捕获和分析网络数据的工具。它可以在计算机网络中监控数据的流动,并提供有关这些数据的详细信息。 该程序通常由几个主要组件组成,括捕获引擎、解析器和分析器。捕获引擎用于截取网络流量,并将捕获的数据传递给解析器。解析器将数据中的原始二进制数据转换成易于理解的格式,并提取其中的关键信息,如源IP地址、目标IP地址、协议类型和数据大小等。分析器通过对这些信息进行统计和分析,揭示网络中的活动模式和问题。 IP数据捕获分析程序的应用非常广泛。首先,它用于网络故障排除。管理员可以使用该程序捕获和分析网络流量,以查找导致网络故障的原因,并采取相应的措施进行修复。其次,它可以用于网络性能优化。通过分析数据,并检测潜在的性能瓶颈,管理员可以对网络进行优化,以提高性能和响应速度。此外,该程序还可用于网络安全监控。它可以帮助管理员发现潜在的入侵行为、恶意软件传播和数据泄露等安全问题,并采取相应的防护措施。 总而言之,IP数据捕获分析程序是一种强大的工具,用于监控、分析和解决计算机网络中的各种问题。它对于网络故障排除、性能优化和安全监控都起着重要的作用。 ### 回答3: IP数据捕获分析程序是一种用来捕获和分析网络传输中的IP数据的软件工具。它可以帮助用户监测和解决网络问题,以及分析网络流量和数据传输状况。 首先,IP数据捕获分析程序可以帮助用户捕获网络中的IP数据。它通过监听网络接口,将经过该接口的数据即时截获,并存储在本地设备中进行分析。通过捕获IP数据,用户可以了解到网络流量的情况,括源IP地址、目标IP地址、端口号、协议类型等。 其次,IP数据捕获分析程序可以对捕获到的数据进行分析。它可以根据用户设定的过滤条件,对捕获到的数据进行筛选和过滤,以提供所需的信息。用户可以根据需要进行数据的统计、排序和分类,以便更好地理解网络流量特点和数据传输情况。 此外,IP数据捕获分析程序还可以帮助用户发现网络问题和故障。通过对捕获到的数据进行深入分析,用户可以追踪和识别网络中存在的问题,如延迟、丢、碰撞等。这对于网络管理员和技术人员来说尤为重要,因为它能帮助他们快速定位和解决网络故障。 总之,IP数据捕获分析程序是一种功能强大的工具,它可以帮助用户捕获和分析网络中的IP数据,了解网络流量和数据传输状况,并辅助用户解决网络问题和故障。对于网络管理和网络安全来说,它是一个不可或缺的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值