专利名称:一种实时获取宽带动态ip地址的方法和装置的制作方法
技术领域:
本发明属干物联网的智能家居领域,尤其涉及接入宽带的智能家居设备的网络通信技术。
背景技术:
物联网是我国正在快速发展的战略性新兴产业,而作为物联网重要应用的智能家居,也同样得到迅速发展。但是智能家居设备与互联网的通信还存在着IP地址资源匮乏、远程控制困难等问题,这是由于目前互联网使用的还是IPv4的地址分配方案,使IP地址数量有限,无法满足物联网和智能家居通信的需求。 在普通家庭中使用的ADSL或FTTH宽带,虽然每次分配了单独的公网IP地址,但是该地址具有动态更新、不断变化的特点,即断线重新拨号会自动分配新的IP地址,不断线也会定期強制更新IP地址,使得这种宽带IP地址无法用作智能家居的通信控制。另外,普遍使用的接在家庭宽带上的路由器存在空闲断线的功能,即当与之相连的电脑等设备空闲不上网时,在超过等待时间后自动断线,造成IP地址释放,当电脑设备再次连接上网时,IP地址又被更新为新的地址。为了解决和利用这种动态的IP地址,已经有了 “花生売”之类的动态域名解析技术(DDNS),但该技术存在可靠性低、更新速度慢、用户申请复杂等缺点。
发明内容
本发明提供了一种基于UDP协议实时获取宽带IP动态地址的装置和方法,利用该方法可以随时取得宽带的动态IP地址,并将此IP地址存放于数据库中,智能家居设备通过访问该数据库,能对IP地址所对应的智能家居设备进行控制。该装置是由UDP发送端和UDP接收端组成。所述方法包括以下步骤I)由单片机组成的UDP发送端的UDP发送单元,以客户端方式工作;2)对该UDP发送单元加载与UDP接收服务器同样的IP地址(也可以是对应的域名)、端ロ信息;3)对该UDP发送单元加载识别编码信息;4)在UDP发送单元中封装成UDP数据报;5)该数据报经以太ロ发送至路由器,再经路由器转发至互联网;6)间隔η秒后再次重复以上环节,形成循环发送;7)由UDP接收服务器组成的UDP接收端,从互联网上接收UDP发送端发送来的UDP数据报内容;8)UDP接收服务器从获取的UDP数据报和相应的IP数据报中,抽取出Μ)Ρ发送端的IP地址和识别编码;9)UDP接收服务器将该IP地址和识别编码加上当前时间等信息,存储在数据库中;
10)此数据库中保存的是最新的用户端(UDP发送端)IP地址,利用此地址即能实现对智能家居设备的控制。本发明相对于“花生売”之类的IP动态地址解析技术,具有IP地址更新时间快、工作可靠、使用简便等优点。另ー方面,利用UDP协议简单高效的特点,保证了系统运行的稳定和可靠。
图I为本发明实施例提供的一种整体接入方法的结构示意图;图2为本发明实施例提供的UDP发送端结构示意图;图3为本发明实施例提供的UDP发送单元工作流程图; 图4为本发明实施例提供的发送端UDP数据报结构图;图5为本发明实施例提供的UDP接收端结构示意图;图6为本发明实施例提供的UDP接收服务器工作流程图。
具体实施例方式下面结合附图和具体实施例对本发明所述技术方案作进ー步的详细描述,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实例不作为对本发明的限定。本领域技术人员将理解到,体现本发明部分或全部的装置可以是具有安排来提供本发明实施例的一部分或全部的软件的通用设备。该设备可以是单个设备或一组设备,并且该软件可以是单个程序或ー组程序。此外,用于本发明的任何或全部软件可以经由任何适当传输或存储部件通信,使得软件可以加载到一个或多个设备上。图I所示为本发明的总体接入和运行方式实施例示意图UDP发送端101通过互联网102对UDP接收端103不断发送UDP信号,UDP接收端103从收到的信号中提取出源IP地址和识别编码,存入数据库中,该数据库的数据将提供给智能家居远程控制应用104用作对智能家居设备的控制。图2更详细示出UDP发送端101的内部结构。包括ADSL或FTTH终端204、家庭路由器203、智能家居控制设备202以及本发明所提供的UDP发送单元201。这是ー个典型的家庭宽带用户网络结构,终端204是宽带的接ロ,用以接入互联网102中。路由器203是ー套家庭常用路由器,一般集成有无线Wi-Fi和多LAN ロ功能。智能家居控制设备202是ー套具有主机(Web Server)功能的单片机控制设备,可以对家用电器、家用传感设备进行控制。本发明的Μ)Ρ发送单元201为ー套具有以太接ロ的单片机装置,该单片机加载有TCP/IP协议栈。图3为UDP发送单元201的基本工作流程在步骤301,对单片机进行初始化。在步骤302,从FLASH存储器中读取事先设定的本地IP地址和本地端口号,另外读取的还有网关地址和掩码地址等。此本地IP地址为路由器203内部配置地址,网关地址是路由器203的网关地址。在步骤303,从FLASH存储器中读取事先设定的目的IP地址和目的端口号,该目的地址和目的端口号与UDP接收服务器501所配置的IP地址和端口号相同。在步骤304,从FLASH存储器中读出事先设定的识别编码,该识别编码是为每个Μ)Ρ发送单元201单独编制的。在步骤305,将以上信息封装成标准UDP协议格式的数据报。图4所示的是UDP数据报的报文格式,源端ロ、目的端ロ、长度、检验和各占用16比特,数据位存放的是识别编码,该编码在本实施例中占用32比特。在步骤306中将该UDP数据报打包成IP数据报,经以太口和UDP发送端101中的其它网络设备发送至互联网102,相应的单片机程序的代码为UdpSend(&Rcv buf [O], RcvLen)。在步骤307,经过η秒的延时,再次执行步骤305和步骤306,完成循环发送UDP信号的目的。对于步骤307中的η取值范围是根据智能家居控制设备的实时性的要求而定,η值越小,获取的动态IP地址的准确性越高,但Μ)Ρ接收服务器501的负荷会増大。图5更详细示出UDP接收端103的内部结构。包括UDP接收服务器501和数据库502。UDP接收服务器501是一台安装有操作系统Win2003 Server的服务器,该服务器通过专线接入互联网102,并配有固定的公网IP地址。在服务器中运行的是ー套基于Windows sockets编程的UDP通信程序。数据库502采用Microsoft SQL Server,该数据库除了用于存放UDP接收服务器501的数据外,也对智能家居远程控制应用104开放。图6为UDP接收服务器501的基本工作流程在步骤601,服务器启动,运行UDP通信程序,初始化工作环境。在步骤602,创建套接字,获取本地IP地址和端ロ。在步骤603,对端ロ进行邦定,完成一系列初始化。在步骤604,侦听端口和等待UDP信号。在步骤605,判断有否与本机IP地址和端ロ相符的信号,如有转至步骤606,如无转至步骤604。在步骤606,对信号数据进行接收。在步骤607,获取UDP发送单元201发来的IP地址和识别编码,此环节相应的程序代码如下IPEndPoint sender = new IPEndPoint (IPAddress. Any,0) ;EndPoint Remote = (EndPoint) (,sender) ;recv = newsock. ReceiveFrom^data, refRemote)。在步骤608,对数据库502进行连接。在步骤609,将接收到的UDP发送端101的IP地址等相关信息写入数据库502。在步骤610,关闭数据库502,结束对数据库的连接。下一歩,程序返回至步骤604,继续执行侦听端口和等待UDP信号步骤。通过以上的发送和接收环节,数据库502中随时保存着最新的用户端(UDP发送端)IP地址信息,根据这个信息,能实现对智能家居控制设备202的实时控制,从而达到智能家居远程控制应用104的目的。
权利要求
1.一种实时获取宽带动态IP地址的方法,其特征在于,包括从发送端向接收端发送UDP数据报的方法,获取发送端的动态IP地址和识别编码。
2.如权利要求I所述的方法,其特征在于,所述UDP数据报包括将识别编码封装于该UDP数据报的数据字段中。
3.如权利要求I所述的方法,其特征在于,所述动态IP地址和识别编码包括将该IP地址和识别编码存放于数据库中。
4.一种实时获取宽带动态IP地址的装置,其特征在于,包括a)UDP发送单元,用于发送UDP信号;b)UDP接收服务器,用于接收UDP信号。
5.如权利要求4所述的装置,其特征在于,所述UDP发送单元包括由单独的单片机组成。
6.如权利要求4所述的装置,其特征在于,所述UDP发送单元包括可以集成在其它应用的单片机中,成为其单片机的子单元。
全文摘要
本发明提供一种实时获取宽带动态IP地址的方法和装置,属于物联网的智能家居领域,尤其涉及接入宽带的智能家居设备的网络通信技术。本发明解决接入宽带的智能家居设备实时获取动态IP地址的技术问题。本发明主要是利用UDP数据报协议简单、高效的性能,通过UDP发送端连续发送UDP信号和UDP接收端对收到的信号提取IP地址和识别编码信息,并将该信息存放于数据库中,通过对该数据库的访问,实现智能家居远程控制的应用。
文档编号H04L29/12GK102685269SQ20121016103
公开日2012年9月19日 申请日期2012年5月16日 优先权日2012年5月16日
发明者陈为人 申请人:陈为人