社区
网络编程
帖子详情
用Winpcap如何获取网卡的MAC和IP?
ansili
2007-07-31 01:38:09
用Winpcap如何获取网卡的MAC和IP?
...全文
1554
5
打赏
收藏
用Winpcap如何获取网卡的MAC和IP?
用Winpcap如何获取网卡的MAC和IP?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
方式
获取
内网
MAC
地址
win
pcap
方式
获取
内网
MAC
地址,通向局域网广播ARP包来
获取
在线机子的
网卡
MAC
地址。
基于
win
pcap
发送数据包
03、可以随机修改数据包的:源、目的
MAC
地址,
IP
地址,端口、数据内容等属性信息。 04、使用多线程发包,在XP下最多可以同时开2000个线程发包,发包速度快,流量大。在千兆
网卡
上可以超过15M/s的速度。 05、自动...
ZXG_MySniffer.rar_MFC抓包_TCP/
IP
_mfc udp_mxm zxg_窗口拆分
1、 能够
获取
本地
网卡
信息,包括以太
网卡
、无线
网卡
和虚拟
网卡
的所有详细数据; 2、 支持
IP
、ICMP、ARP、RARP、TCP、UDP等六种协议,提供用户自选包过滤规则; 3、 可多线程抓取数据包,并列表显示抓取的数据包;...
黑客反向工程
VC++ 6.0 中使用
Win
Pcap
下载并安装
Win
Pcap
,安装之后在目录”C:\
WIN
DOWS\system32“下
Win
Pcap
添加了Packet.dll、w
pcap
.dll。 增加
Win
Pcap
的include和lib路径: Tools→Options→Directories,其中include文件的...
Pktlib的报构造器以及使用说明
(1) CadapterInfo类: 提供主机网络配置信息的
获取
,如
IP
地址、DNS、网关、
MAC
地址、网络类型、MTU、DHCP配置信息等。 (2) CAdapter类:提供针对指定
网卡
的相关操作:打开
网卡
(正常打开模式、混在模式)、设置捕获数据...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章