我用钩子截获了ip包 但是分析包ip地址时出现错误
ip包地址是
解析出来却是169.254.28.280
哪位高手告诉我怎么回事116.32.111.102
该怎么分析 才能获得正确地址
代码如下
char szSourceIP[MAX_ADDR_LEN], szDestIP[MAX_ADDR_LEN];
IP_HEADER *pIpheader;
SOCKADDR_IN saSource, saDest;
pIpheader = (IP_HEADER *)buf; //这里buf是截获的包缓冲区
saSource.sin_addr.s_addr = pIpheader-> sourceIP;
strncpy(szSourceIP, inet_ntoa(saSource.sin_addr), MAX_ADDR_LEN);
sprintf(xianshi, "%s ",inet_ntoa(saSource.sin_addr));
MessageBoxA(0,xianshi, "tcp_ip ",MB_YESNO|MB_ICONQUESTION|0x00200000L);
[解决办法]
把截获的包缓冲区贴出来吧!
[解决办法]
我觉得问题出在你的buf上面
[解决办法]
你说得recv函数是socket函数么?
这个函数处理的缓冲区已经是tcp或者udp的payload了
不包含ip header的
搞ip层的东西还是用libpcap吧