libpcap抓包ip地址不对?请帮我看看代码

问题描述

我需要做一个抓包器,代码如下,我的主机ip地址是192.168.1.110,可是结果却是sudo./sniffall0157.55.56.161192.168.1.105192.168.1.105157.55.56.161157.55.56.161192.168.1.105192.168.1.105157.55.56.161157.55.56.161192.168.1.105这个不对吧?之前我尝试过用netinet/ip.h和netinet/ether.h下面的structip和structether来算offset,可是结果的ip更奇怪了,大家看看是哪里出了问题,谢谢!#include<pcap.h>#include<stdio.h>#include<stdlib.h>#include<netinet/in.h>#include<arpa/inet.h>//#include<netinet/ip.h>//#include<netinet/if_ether.h>//#include<netinet/ether.h>structether_header{u_int8_tether_dhost[6];u_int8_tether_shost[6];u_int16_tether_type;};typedefu_int32_tin_addr_t;structip_header{#ifdefWORDS_BIGENDIANu_int8_tip_version:4;u_int8_tip_header_length:4;#elseu_int8_tip_header_length:4;u_int8_tip_version:4;#endifu_int8_tip_tos;u_int16_tip_length;u_int16_tip_id;u_int16_tip_off;u_int8_tip_ttl;u_int8_tip_protocol;u_int16_tip_checksum;structin_addrip_source_address;structin_addrip_destination_address;};voidgetPacket(u_char*args,conststructpcap_pkthdr*pkthdr,constu_char*packet){structip_header*ip;ip=(structip_header*)(packet+sizeof(structether_header));char*src=inet_ntoa(ip->ip_source_address);printf("%s",src);char*dst=inet_ntoa(ip->ip_destination_address);printf("%sn",dst);}

时间: 2024-09-20 23:37:24

libpcap抓包ip地址不对?请帮我看看代码的相关文章

php读取qqwry.dat ip地址定位文件的类实例代码

实例如下: <?php // +---------------------------------------------------------------------- // | // +---------------------------------------------------------------------- // | // +---------------------------------------------------------------------- cla

wireshark 网络数据包-ip地址转换的问题?非常规地址表示如何转换

问题描述 ip地址转换的问题?非常规地址表示如何转换 用wireshark抓包,STUN协议中包含的ip地址192.168.1.13,显示的是e1baa54f,求解192.168.1.13是如何从e1baa54f转换得来的?

ip地址-求解释下这段代码...感激不尽

问题描述 求解释下这段代码...感激不尽 u_long ulDestIP; u_long ulDestIP1=inet_addr(a); u_long ulDestIP2=inet_addr(b); unsigned long count = ntohl(ulDestIP2 - ulDestIP1)-1; struct in_addr in; unsigned long hostip; for(unsigned int i = 0; i <=count+1; i++) { hostip = nt

winform程序怎么上传文件到服务器,因为可能涉及外网内网,服务器的地址是一个IP地址,怎么上传求代码

问题描述 想上传文件的服务器,可是地址如果填IP地址,如http://192.168.68.200/就报错这样的URL是不支持的,怎么办?服务器的地址应该写什么,求代码 解决方案 解决方案二:在线等.求代码,求详解!解决方案三:配置一个WCF服务..此服务用于上传文件,然后,在winform里面调用就是了解决方案四:在服务器上配置个ftp啊解决方案五:最简单的就是建个FTP,自己写个FTP类,直接调用就好了...

asp 根据IP地址自动判断转向分站的代码_应用技巧

Function getIpvalue(clientIP)'得到客户端的IP转换成长整型,返回值getIpvalue On Error Resume Next Dim strIp, array_Ip strIp=0 array_Ip = Split(clientIP,".") If UBound(array_Ip)<>3 Then getIpvalue=0 Exit Function End If For i=0 To 3 strIp=strIp+(CInt(array_I

asp 根据IP地址自动判断转向分站的代码

Function getIpvalue(clientIP)'得到客户端的IP转换成长整型,返回值getIpvalue On Error Resume Next Dim strIp, array_Ip strIp=0 array_Ip = Split(clientIP,".") If UBound(array_Ip)<>3 Then getIpvalue=0 Exit Function End If For i=0 To 3 strIp=strIp+(CInt(array_I

将接收到的IP地址转化为字符串显示(代码)

 BYTE nField0,nField1,nField2,nField3; m_ipaddd.GetAddress(nField0,nField1,nField2,nField3); //m_ipadd.SetAddress(nField0,nField1,nField2,nField3);     CString   strData1, strData2, strData3, strData4;     strData1.Format(_T("%.3d"),  nField0 );

linux-libpcap抓包然后用socket raw 发出去

问题描述 libpcap抓包然后用socket raw 发出去 我想实现这样一个功能用pcap抓包在回调函数中用可以处理底层数据的socket套接字发出去.现在发送IP包没问题但是发送MAC包貌似死循环发送了 部分代码如下: 这是我发送数据包的代码 int sockfd_MAC = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); // 创建Socket void SendMACPacket(int sockfd, void* msg, size_t

Android设备上非root的抓包实现方法(Tcpdump方法)_Android

通常我们在Android应用中执行某个命令时会使用"Runtime.getRuntime().exec("命令路径")"这种方式,但是当我们执行抓包操作时,使用这条命令无论如何都不行,通过下面代码打印结果发现,该命令一定要在root权限下才能执行. BufferedReader brW = new BufferedReader(new InputStreamReader(p.getErrorStream())); while((str = brW.readLine(