利用Linux socket 模拟大华IPC发送广播包,让大华客户端搜索到一个模拟的ip摄像头

 最近在熟悉IP摄像头的网络通讯,做了个简单的实例,现在整理一下思路。

 大概就是拿到一个大华IP摄像头,wireshark抓包分析它是如何回应大华客户端发出的广播包,然后通过Linux创建UDP,模拟ip摄像头设备发出同样的广播包。然后在大华的视频客户端点击自动搜索的时候能搜索到一个虚拟的IP摄像头设备。但是这个设备是不存在的,只是个虚拟的。

 首先我们需要通过抓包工具,查看当我们点击自动搜索时,我们的摄像头设备是如何回应客户端发送的广播包的。图中 192.168.1.36是我的设备。

 图中蓝色部分的UDP协议就是当点击自动搜素时发送的广播包,我的设备回应的包就是长度为839的包,其中真正的数据长度为797。

查看原始数据如图。


分析数据包的工作做完后,就可以开始模拟了。我所使用的方法时在linux下创建UDP发送相同的包,让大华客户端识别。下面是UDP的代码

#include<stdlib.h> 
#include<stdio.h> 
#include<string.h> 
#include<sys/types.h> 
#include<netinet/in.h> 
#include<netdb.h> 
#include<sys/socket.h> 
#include<sys/wait.h> 
#include<arpa/inet.h> 

#define BUFFER_SIZE 794

int main(){ 
 int sockListen;  
 int recvbytes; 
 char recvbuf[128]; 
 char buffer[BUFFER_SIZE] = {0x20, 0x00, 0x00, 0x00, 0x44, 0x48, 0x49, 0x50,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0xfd, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0xfd, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值