打印

使用libpcap编程问题

使用libpcap编程问题

#include <pcap.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>



/* Libpcap的头文件,必须包含 */

//typedef u_int32_t in_addr_t;

//struct in_addr /* 地址类型 */

//{

//  in_addr_t s_addr; /* IP地址类型 */

//};
int main(void)

{

    char error_content[PCAP_ERRBUF_SIZE];

    /* 出错信息 */

    struct in_addr net_ip_address;

    /* 网络地址 */

    struct in_addr net_mask_address;

    /* 掩码地址 */

    char *net_interface;

    /* 接口名字 */

    char *net_ip_string;

    /* 网络地址字符串形式 */

    char *net_mask_string;

    /* 掩码地址字符串形式 */

    u_int32_t net_ip;

    /* 网络地址 */

    u_int32_t net_mask;

    /* 掩码地址 */
       

   net_interface = pcap_lookupdev(error_content);
       
        printf("%s \n",error_content);

    /* 获取网络接口 */

    pcap_lookupnet(net_interface,  /* 网络接口 */ &net_ip,  /* 网络地址 */

     &net_mask,  /* 网络掩码 */error_content); /* 错误信息

     * */

    /* 获取网络地址和掩码地址 */

    printf("Network Interface is :%s\n", net_interface);
        sleep(3);

    /* 输出接口名字 */

    net_ip_address.s_addr = net_ip;
        printf("%u",net_ip);

    net_ip_string = inet_ntoa(net_ip_address);

    /* 把二进制网络地址格式转换为字符串形式 */

    printf("Network IP Address is :%s\n", net_ip_string);

    /* 输出网络地址 */

    net_mask_address.s_addr = net_mask;

    net_mask_string = inet_ntoa(net_mask_address);

    /* 把二进制掩码地址格式转换为字符串形式 */

    printf("Network Mask Address is:%s\n", net_mask_string);

    /* 输出掩码地址 */

        return 0;
}

用libpcap0.8.3编译时找到的网络接口是petho
而用libpcap0.9.5编译执行是找不到网络接口
这是为什么呢???

TOP

呵呵,这么多人看了,怎么就没有一个人回复呢,版主???

TOP

没用过

TOP