设备信息的查找与修改(2)

linux设备端:

1.  int fd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));//

函数原型:int socket(int domain, int type, int protocol);//发送接收以太网数据帧

//sock_raw(注意一定要在root下使用)原始套接字编程可以接收到本机网卡上的数据帧或者数据包,对于监听网络的流量和分析是很有作用的.

  • domain:即协议域,又称为协议族(family)。常用的协议族有,AF_INET、AF_INET6、AF_LOCAL(或称AF_UNIX,Unix域socket)、AF_ROUTE等等。协议族决定了socket的地址类型,在通信中必须采用对应的地址,如AF_INET决定了要用ipv4地址(32位的)与端口号(16位的)的组合、AF_UNIX决定了要用一个绝对路径名作为地址。
  • type:指定socket类型。常用的socket类型有,SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET等等(socket的类型有哪些?)。
  • protocol:故名思意,就是指定协议。常用的协议有,IPPROTO_TCP、IPPTOTO_UDP、IPPROTO_SCTP、IPPROTO_TIPC等,它们分别对应TCP传输协议、UDP传输协议、STCP传输协议、TIPC传输协议

2.  recvfrom(fd, recvBuf, MAX_SIZE, 0, NULL, NULL);

 

 

windows 用vs2010  C++

a.设置设备信息

1. pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &allDevs, errBuf)//查找所有网络设备

原型:int pcap_findalldevs_ex(char* source,  struct pcap_rmtauth *auth,  pcap_if_t** alldevs,   char* errbuf );

          返回值:0表示查找成功。-1表示查找失败

参数说明:

source:指定是本地适配器或者远程适配器 本地适配器:'rpcap://'  远程适配器:'rpcap://host:port'  抓包文件。'file://c:/myfolder/'.

2.pcap_open(itDev->name, 65535, PCAP_OPENFLAG_PROMISCUOUS, // 混杂模式1000, // 读取超时时间NULL, // 远程机器验证 errBuf )) == NULL)//打开一个抓取设备

3.pcap_freealldevs(allDevs);

4.pcap_sendpacket(adhandle, (const u_char *)sendBuf, sizeof(RawPackInfo) + sizeof(BatchDeviceInfo))

b.查询设备信息

1. pcap_findalldevs_ex//查找设备列表

2.pcap_open//打开设备列表

3.pcap_sendpacket//发送请求包

4.pcap_next_ex// 从interface或离线记录文件获取一个报文

5.WaitForSingleObject//等待返回信息

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值