winpcap php,WinPcap简单使用

下载

2. 解压放到任意目录(不含中文);

使用

1. VS创建一个控制台程序;

2. 配置:

配置属性 >> VC++目录 >> 包含目录 添加Include文件夹

配置属性 >> VC++目录 >> 库目录 添加Lib文件夹

配置属性 >> 链接器 >> 输入 >> 附加依赖项 添加wpcap.lib

3. 代码:

#include "stdafx.h"

#include "pcap.h"

#define IPTOSBUFFERS 12

void ifprint(pcap_if_t *d);

char * iptos(u_long in);

int i = 0;

int _tmain(int argc, _TCHAR* argv[])

{

pcap_if_t * alldevs;

pcap_if_t * d;

char errbuf[PCAP_ERRBUF_SIZE];

/*取得列表*/

if (pcap_findalldevs(&alldevs, errbuf) == -1)

{

exit(1);

}

/*输出列表*/

for (d = alldevs; d != NULL; d = d->next)

{

ifprint(d);

}

if (i == 0)

{

printf("\nNo interfaces found!Make sure WinPcap is installed.\n");

return 0;

}

pcap_freealldevs(alldevs);

char g = getchar();

return 0;

}

void ifprint(pcap_if_t *d)

{

pcap_addr_t *a;

printf("%d.%s\n", ++i, d->name);

if (d->description)

{

printf("Description:(%s)\n", d->description);

}

else{

printf("(No description available)\n");

}

printf("Loopback:%s\n", (d->flags & PCAP_IF_LOOPBACK) ? "yes" : "no");

for (a = d->addresses; a != NULL; a = a->next)

{

printf("Address Family:#%d\n", a->addr->sa_family);

switch (a->addr->sa_family)

{

case AF_INET:

printf("Address Family Name:AF_INET\n");

if (a->addr)

{

printf("Address:%s\n", iptos(((struct sockaddr_in *)a->addr)->sin_addr.s_addr));

}

if (a->netmask)

{

printf("Netmask:%s\n", iptos(((struct sockaddr_in *)a->netmask)->sin_addr.s_addr));

}

if (a->broadaddr)

{

printf("Broadcast Address:%s\n", iptos(((struct sockaddr_in *)a->broadaddr)->sin_addr.s_addr));

}

if (a->dstaddr)

{

printf("Destination Address:%s\n", iptos(((struct sockaddr_in *)a->dstaddr)->sin_addr.s_addr));

}

break;

default:

printf("AddressFamilyName:Unknown\n");

break;

}

}

}

char * iptos(u_long in)

{

static char output[IPTOSBUFFERS][3 * 4 + 3 + 1];

static short which;

u_char *p;

p = (u_char *)∈

which = (which + 1 == IPTOSBUFFERS ? 0 : which + 1);

sprintf_s(output[which], "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);

return output[which];

}

4. 运行效果:

d4311c0ec69f1b53a231a2bbf8f21c5d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值