hik.leo

hik.leo

0个粉丝

15

问答

0

专栏

1

资料

hik.leo  发布于  2016-07-27 09:50:57
采纳率 0%
15个问答
4641

网络摄像机,自动检测局域网内设备,并修改IP,这个是怎么样的原理和方式?

 
网络摄像机,自动检测局域网内设备,并修改IP,这个是怎么样的原理和方式?

如设备IP192.168.11.22, 路由器网段是  192.168.0.2 -254, 不再同一网段无法直接与设备通讯,

但是有工具可以检测到设备,然后修改IP以使可以正常通讯。不知道怎么实现
我来回答
回答8个
时间排序
认可量排序

ngswfx

2个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-07-27 09:57:16
认可0
本帖最后由 ngswfx 于 2016-7-27 10:09 编辑

板子上运行,udhcpc,看能否执行,如果要实现具体功能,需要做一些配置。
dhcp客户端可以干这个。
///////看板子上/usr/sbin目录下,或者/bin目录下

/////////网上搜索,关于dhcp客户端arm实现。

/////主要实在/usr/share目录里面放一个文件夹udhcpc,里面有配置文件default.script。

内容如下:
[code]#!/bin/sh
# udhcpc script edited by Tim Riker

RESOLV_CONF="/etc/resolv.conf"

[ -n "$1" ] || { echo "Error: should be called from udhcpc"; exit 1; }

NETMASK=""
[ -n "$subnet" ] && NETMASK="netmask $subnet"
BROADCAST="broadcast +"
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"

case "$1" in
        deconfig)
                echo "Setting IP address 0.0.0.0 on $interface"
                ifconfig $interface 0.0.0.0
                ;;

        renew|bound)
                echo "Setting IP address $ip on $interface"
                ifconfig $interface $ip $NETMASK $BROADCAST

                if [ -n "$router" ] ; then
                        echo "Deleting routers"
                        while route del default gw 0.0.0.0 dev $interface ; do
                                :
                        done

                        metric=0
                        for i in $router ; do
                                echo "Adding router $i"
                                route add default gw $i dev $interface metric $((metric++))
                        done
                fi

                echo "Recreating $RESOLV_CONF"
                echo -n > $RESOLV_CONF-$
                [ -n "$domain" ] && echo "search $domain" >> $RESOLV_CONF-$
                for i in $dns ; do
                        echo " Adding DNS server $i"
                        echo "nameserver $i" >> $RESOLV_CONF-$
                done
                mv $RESOLV_CONF-$ $RESOLV_CONF
                ;;
esac

exit 0[/code]

ngswfx

2个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-07-27 10:10:29
认可0
这样配置好了以后,每次启动,只要执行:

/sbin/udhcpc -f
///////就可以从路由器得到DHCP方式的IP地址了。



/////////不过我不喜欢用这种方式,变来变去的,超级烦。

hik.leo

0个粉丝

15

问答

0

专栏

1

资料

hik.leo 2016-07-27 11:18:19
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=34884&ptid=12096]ngswfx 发表于 2016-7-27 10:10[/url]
这样配置好了以后,每次启动,只要执行:

/sbin/udhcpc -f
[/quote]

谢谢,这个是实现dhcp功能。

还有一种就是可以设置静态IP。 通过一个工具。,比如海康的sadp。

海康威视网络摄像机出厂的默认IP地址:为192.0.0.64。需要将IPC的IP地址设置为和电脑在同一网段。

1.    使用摄像机IP地址搜索软件:
2:也可以使用第三方搜索软件搜索,如ipscan。官方搜索软件只支持本品牌设备地址的搜索,而ipscan支持任意品牌设备的地址搜索,甚至可以跨网段进行搜索,是一个只有几十K的绿色程序,不需要安装,很是方便。
3. 完整安装SADP软件,确保电脑与设备连接在同一个路由器或者交换机下面。也可使用网线将网络摄像机和电脑直连。

ngswfx

2个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-07-27 11:29:54
认可0
本帖最后由 ngswfx 于 2016-7-27 11:34 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=34891&ptid=12096]hik.leo 发表于 2016-7-27 11:18[/url]
谢谢,这个是实现dhcp功能。

还有一种就是可以设置静态IP。 通过一个工具。,比如海康的sadp。
[/quote]

ipscan 好像只能找,这个估计用的穷举的方法,对B或者C段IP进行侦测。发现设备到不难。
难在修改IP。

/////////要修改IP,设备端肯定要做响应了。
/////我现在用的方法,就是自己开启特定广播端口,侦听的方式。如果收到侦听包,我就把自己的IP等信息扔出去。

//////然后PC端,有个小工具,再利用设备提供的其他端口网络服务,进行简单登陆,命令交互后,就可以修改设备IP了(当然设备端,还要响应并且保存这个IP信息,以便即刻生效并且下次使用这个配置)。

/////////////其实如果有通用的方法,打包一下,形成设备端的一个小工具,用起来就十分方便了。XM设备,进程列表里面好像有个IP的工具,估计用来管这类需求。

hik.leo

0个粉丝

15

问答

0

专栏

1

资料

hik.leo 2016-07-27 11:33:38
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=34896&ptid=12096]ngswfx 发表于 2016-7-27 11:29[/url]
ipscan 好像只能找,这个估计用的穷举的方法,对B或者C段IP进行侦测。发现设备到不难。
难在修改 ...[/quote]

是的。 不知道是否有公开实现的方式。
主要就是替代没有串口终端命令行配置。

ngswfx

2个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-07-27 11:43:32
认可0
本帖最后由 ngswfx 于 2016-7-27 11:50 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=34899&ptid=12096]hik.leo 发表于 2016-7-27 11:33[/url]
是的。 不知道是否有公开实现的方式。
主要就是替代没有串口终端命令行配置。[/quote]

通用方法,我不知道有没有,即便有,也需要集成响应协议。其实你的需求,Onvif协议全包括了,从搜索到修改IP,有完善的解决方案。只不过太大,太繁琐。
如果是广播方法,这很容易实现。网上大把代码。

////////主要是牵扯了好几个部分,所以开始弄的话不知道怎么弄,无从下手而已:
/////设备端:
1、代码获取所有网络信息。
2、代码应用相关网络信息(修改响应),例如:IP ,子网掩码,MAC,DNS等。
3、开启特定端口广播侦听。
4、开启特定端口服务线程,(主要是和PC工具交互命令,一个网段内,很容易,和自己的不同系统服务代码是一体的)

////PC端
1、发送网络侦听包,接收侦听回送的数据包,并且解析
2、通过界面显示设备IP等信息,并且开启连接动作,尝试连接服务器端口,发出配置修改等命令。
//如果跨网段修改,还需要选择能支持跨网段的方式。

////////////当然,修改IP时,也可以直接发出自定义修改IP的广播包,修改。对应的设备端,进行过滤,判断是不是针对自己的广播包,是不是响应这个修改命令即可。
///////////通过广播方式的,跨网段修改也不难。

hik.leo

0个粉丝

15

问答

0

专栏

1

资料

hik.leo 2016-08-13 16:53:35
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=34884&ptid=12096]ngswfx 发表于 2016-7-27 10:10[/url]
这样配置好了以后,每次启动,只要执行:

/sbin/udhcpc -f
[/quote]

程序中使用 system("/sbin/udhcpc"), 会存在较大概率,卡住,程序不执行下去。。在终端直接运行/sbin/udhcpc"好像没问题。。这个不知道什么问题?

ngswfx

2个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-08-13 18:05:53
认可0
本帖最后由 ngswfx 于 2016-8-13 18:10 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=36053&ptid=12096]hik.leo 发表于 2016-8-13 16:53[/url]
程序中使用 system("/sbin/udhcpc"), 会存在较大概率,卡住,程序不执行下去。。在终端直接运行/sbin/u ...[/quote]

程序里面,命令后面最好加上&,而且最好在某个线程里面执行,不要在main里,万一不行了,很麻烦。

//而且需要配合进程检测,如果有udhcpc进程,就不用再次执行,如果失败,例如IP很久没有得到,没有更新,需要有对应的策略。而且即便成功了,得到新的IP,这个进程也不能随便kill掉,否则dhcp服务器一定时间后,由于DHCP客户端不在了,没有发送继续使用的包,可能会有些异常。

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区