使用Winpcap获取本地IP和子网掩码的简单程序

使用Winpcap获取本地IP和子网掩码的简单程序

#include <pcap.h>

void main()
{
char error_content[PCAP_ERRBUF_SIZE]; //这个在pcap.h中就定义了大小256
struct in_addr net_ip_address; //网络地址 为什么这么定义呀,原因是我们要使用winsock中的inet_ntoa函数了,
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); //这个返回的是个指针,所以net_interface申明的是个指针。
pcap_lookupnet(net_interface,&net_ip,&net_mask,error_content); //这个就是用函数获得了网络地址和子网掩码,其返回的数据都放在net_ip和net_mask中的了,

net_ip_address.s_addr=net_ip; //这个就是in_addr中的内部存放方式了,s_addr 主机地址格式为u_long型的
net_ip_string=inet_ntoa(net_ip_address); //这个是winsocket中的,内部参数是in_addr的,返回一个指针,指向字符串且包含“.”字符
printf("网络地址:%s\n",net_ip_string); //很简单了,就是打印了输出
net_mask_address.s_addr=net_mask; //这个道理同上了, net_mask_string=inet_ntoa(net_mask_address); // 道理同上,就是用这个转化一下了
printf("网路掩码:%s\n",net_mask_string); //简单的输出
}

程序显示的结果也就是简单的显示一下你的网络Ip和子网掩码了,很简单,主要是在编译的时候注意了,我用的VS2005 编译的,在这个项目属性页中,需要我们手动添加Include的文件夹,指向一个我们的开发包“E:\我的网络监测系统\WpdPack\Include”,在Lib,就是链接器的目录中手动添加这个“E:\我的网络监测系统\WpdPack\Lib”,同时,我们还要自己添加静态链接库,在链接器的输入里,附加依赖项中,手动添加“wpcap.lib wsock32.lib”,好了,这个就是使用Winpcap开发的基本步骤了,当然可能大部分用的是VC6编译的,其实意思一样的了,找到,添加就好了。呵呵,自己多多努力了。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值