社区
网络编程
帖子详情
用Winpcap如何获取网卡的MAC和IP?
ansili
2007-07-31 01:38:09
用Winpcap如何获取网卡的MAC和IP?
...全文
1668
5
打赏
收藏
用Winpcap如何获取网卡的MAC和IP?
用Winpcap如何获取网卡的MAC和IP?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
greatws
2008-03-05
打赏
举报
回复
我个人觉得winpcap这块不是很稳定,我比较喜欢用IP Help API获得
http://topic.csdn.net/u/20080215/15/b24bf5e3-1d59-4597-ad8f-511926531a1c.html
qhdzqx
2008-03-05
打赏
举报
回复
//获取网卡参数程序,前提是要安装winpcap及将头文件与lib文件复制到相关文件夹下
#include "pcap.h"
#pragma comment(lib, "wpcap.lib")
main()
{
pcap_if_t *alldevs;
pcap_if_t *d;
int i=0;
char errbuf[PCAP_ERRBUF_SIZE];
/* 这个API用来获得网卡 的列表 */
if (pcap_findalldevs(&alldevs, errbuf) == -1)
{
fprintf(stderr,"Error in pcap_findalldevs: %s\n", errbuf);
exit(1);
}
/* 显示列表的响应字段的内容 */
for(d=alldevs;d;d=d->next)
{
printf("%d. %s", ++i, d->name);
if (d->description)
printf(" (%s)\n", d->description);
else printf(" (No description available)\n");
}
if(i==0)
{
printf("\nNo interfaces found! Make sure WinPcap is installed.\n");
return;
}
/* We don’t need any more the device list. Free it */
pcap_freealldevs(alldevs);
}
//获取IP参数程序
#include "pcap.h"
#pragma comment(lib, "wpcap.lib")
void ifprint(pcap_if_t *d);
char *iptos(u_long in);
int main()
{
pcap_if_t *alldevs;
pcap_if_t *d;
char errbuf[PCAP_ERRBUF_SIZE+1];
/* 获得设备列表 */
if (pcap_findalldevs(&alldevs, errbuf) == -1)
{
fprintf(stderr,"Error in pcap_findalldevs: %s\n",errbuf);
exit(1);
}
/* 遍历所有元素 */
for(d=alldevs;d;d=d->next)
{
ifprint(d);
}
return 1;
}
/* Print all the available information on the given interface */
void ifprint(pcap_if_t *d)
{
pcap_addr_t *a;
/* 名称 */
printf("%s\n",d->name);
/* 描述 */
if (d->description)
printf("\tDescription: %s\n",d->description);
/* 回环地址 */
printf("\tLoopback: %s\n",(d->flags & PCAP_IF_LOOPBACK)?"yes":"no");
/* IP 地址 */
for(a=d->addresses;a;a=a->next) {
printf("\tAddress Family: #%d\n",a->addr->sa_family);
switch(a->addr->sa_family)
{
case AF_INET:
printf("\tAddress Family Name: AF_INET\n");
if (a->addr)
/* Y- IP 地址 */
printf("\tAddress: %s\n",iptos(((struct sockaddr_in *)a->addr)->sin_addr.s_addr));
if (a->netmask)
/* Y- 掩码 */
printf("\tNetmask: %s\n",iptos(((struct sockaddr_in *)a->netmask)->sin_addr.s_addr));
if (a->broadaddr)
/* Y- 广播地址 */
printf("\tBroadcast Address: %s\n",iptos(((struct sockaddr_in *)a->broadaddr)->sin_addr.s_addr));
if (a->dstaddr)
/* Y - 目标地址 */
printf("\tDestination Address: %s\n",iptos(((struct sockaddr_in *)a->dstaddr)->sin_addr.s_addr));
break;
default:
/* 未知 */
printf("\tAddress Family Name: Unknown\n");
break;
}
}
printf("\n");
}
/* 来自 tcptracert, 把数字IP地址转换为点格式 */
#define IPTOSBUFFERS 12
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(output[which], "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
return output[which];
}
ReverseEngineering
2007-09-06
打赏
举报
回复
Winpcap的手册当中肯定有介绍的,找找
JamesXing
2007-07-31
打赏
举报
回复
http://blog.csdn.net/JamesXing/archive/2007/07/24/1704952.aspx
ansili
2007-07-31
打赏
举报
回复
用其他方法获取指定网卡的MAC和ip和可以。
一个
Win
pcap
获取
网卡
信息和抓包的小程序
这个小程序可能包含了上述部分或全部功能,通过
Win
pcap
API实现了
网卡
信息的查询(如
MAC
地址、
IP
地址、网络速度等)以及网络数据包的实时捕获和分析。对于网络监控和故障排查来说,这样的工具非常有用,因为它能提供...
MFC
获取
网卡
信息的一个例子
在MFC中,我们可以利用这些接口来编写代码,
获取
包括
网卡
名称、
MAC
地址、
IP
地址、子网掩码等信息。例如,我们可以使用GetAdaptersInfo函数,它是
IP
Helper (
IP
HLPAPI) 库的一部分,用于
获取
本地计算机上的网络适配器...
win
pcap
方式
获取
内网
MAC
地址
win
pcap
方式
获取
内网
MAC
地址,通向局域网广播ARP包来
获取
在线机子的
网卡
MAC
地址。
如何
获取
局域网内设备
IP
地址和
MAC
地址
本文将介绍使用
Win
PCAP
和
Win
dump工具
获取
局域网内设备的
IP
地址和
MAC
地址的步骤。 知识点1:什么是
IP
地址?
IP
地址(Internet Protocol Address)是指在 TCP/
IP
网络中,每个设备都需要一个唯一的地址,以便在网络中...
vc++
获取
取
网卡
MAC
地址的三种方法.z
ip
在提供的压缩包文件中,"get
mac
bysnmp.rar"可能包含了一个使用SNMP
获取
MAC
地址的示例代码,而"取得系统中
网卡
MAC
地址的三种方法.txt"应该详细列举了上述三种方法的实现步骤或代码片段。通过研究这些资源,开发者可以...
网络编程
18,358
社区成员
64,186
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章