动态IP环境下客户端自动获取服务器地址新方法的研究.doc
-
资源ID:4540781
资源大小:1.15MB
全文页数:12页
- 资源格式: DOC
下载积分:8金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
动态IP环境下客户端自动获取服务器地址新方法的研究.doc
,动态IP环境下客户端自动获取服务器地址新方法的研究一、研究背景在家庭网络环境下,想把分布于忻州市内不同街道的商店、超市通过软件统一管理起来。这些管理软件中的客户端要接入处于动态分配IP环境中的服务器,需提前获取服务器当时的IP地址,并进行相关网络配置,才可访问服务器。因为通信公司IP地址有限,家庭用户不可能每个都是固定IP,即每次断电后或系统重启后将被电信部门重新分配不同的IP地址。要想解决这个问题,传统的方法要不是耗时费力就是费用较高或稳定性安全性不高,均不能令中小型公司和商户满意。如何实现客户电脑配置简单化或自动化就成为了迫切要解决的问题。二、实现目标服务器使用电信部门动态分配的IP(IP地址每次接入都不一样,如ADSL宽带上网),通过编写软件,让软件为客户端自动获取服务器IP地址,自动配置客户端应用软件的网络参数,使其随时都可以连接服务器,提供方便、稳定和免费的服务。三、设计过程去年暑假,我在叔叔的店里帮忙。叔叔在忻州开了两家服装店,店里使用的商业管理软件都是“管家婆”。有段时间,店里的销售软件和服务器连接不上,叔叔和店里的几个销售员每当遇到这种情况就打电话叫一个懂电脑的师傅过来处理,人家过来配置完又可以用了,可是每当遇到电脑关机或突然断电的情况还得麻烦人家。叔叔和几个店员也试着学习,但是好像操作繁琐,没有电脑基础并不容易掌握。遇到这种情况,所有的销售还得手工记录然后添加进销售软件中,频繁出现的脱网令叔叔和几个店员苦不堪言,浪费了大量的时间。后来在脱网时,我和几个同学也学习着那个师傅的办法给销售软件配置IP,但是每次都得打电话问另一个店里的服务器IP。有时,服务器那边断电,这边还得联系那边问当前的IP是多少以便重新配置客户端。因为店里每天下班时习惯切断所有电源,所以这样的工作几乎每天都在重复,终于有一天,我觉得这不是个办法,我想找个一劳永逸的办法。 首先我想到这样的问题绝对不是我第一个遇到的,于是我查找和咨询目前解决此类问题的方法。(一)为服务器申请固定IP地址通过该方法客户端可通过固定方式提前配置好的指向的服务器IP地址,优点是稳定、操作简单,用户使用方便,缺点是每月都需交很高费用,我走访了忻州联通和忻州电信,工作人员说一年需上万元甚至几万元,费用很高,不适合中小型商业用户使用。(二)利用付费域名服务商提供服务动态IP环境下,利用付费域名服务商提供的服务(如“花生壳”提供的商业服务),为服务器注册域名,客户端通过“花生壳”域名解析获取服务器IP地址。该方法优点是比较稳定,缺点是需要较高数额的开支,而且域名公布在公网上,安全性不高。(三)利用免费域名服务商提供服务动态IP环境下,利用免费域名(如“花生壳”提供的免费个人服务)服务商提供的域名解析服务,通过为服务器注册的域名获取服务器IP地址。该方法成本低,但不稳定,服务商经常以免费试用结束停止服务,给商户带来不可估量的损失。曾经调查过采用该方法的几家商店,有时域名服务公司一天能暂停好几次服务,还不时提示付费后才能给提供稳定的服务。(四)电信部门托管服务器通过电信部门托管服务器提供服务,优点是稳定,缺点是需要交较高的费用,维护更新不方便。上述几种办法尽管可以解决,但是也存在种种问题。可以不可以让计算机在开机获得网通或电信分配的动态IP自动配置到前台电脑的销售软件中呢?有了这个想法,我开始每天在网上搜集解决的办法。偶然间,我和教我们技术课的丰老师聊了起来,我就把我的想法告诉了丰老师,丰老师听了后,说既然想自动配置就得让客户机与服务器自动聊天,让他们传递信息,然后自动配置。问题明确了,如何解决呢?四、研究过程(一)总体方案选择真正动手做的时候才发现很多坎需要我们过,丰老师在接下来的一段时间也是搜集了大量的资料,还找来了另一位工程师级的高手付老师,他们在一起帮我想办法找对策。要想知道在动态网络环境中的服务器地址,需要借助第三方服务来完成。刚开始想在网上寻找免费的公用Web服务接口,但未发现可以传递地址信息的接口。随后又想做软件在免费的个人空间或微博上自动发布服务器地址,客户端也做专用软件从个人空间上自动取得服务器地址,但是个人空间容易受广告等商家信息的干扰,提取地址复杂,且准确度不高。最后确定借助即时聊天工具实现,注册几个聊天账户,在服务器和客户端都用编写的软件自动登录,自动发送服务器IP地址,在客户端自动接收地址,并自动配置客户端网络参数,并自动启动客户端登录服务器(相当于一个自动聊天并完成网络配置的机器人)。(二)实现方法首先想用网上最流行的腾迅公司的QQ聊天系统传递,并对QQ2013进行了研究,想做一个自动登录、发送和接收地址的软件。但是,QQ公司为了用户安全,登录时要验证码,而验证码用带有干扰的图片的形式提供,利用OCR技术不能识别,必须以人工方式输入,所以用该方法不能实现自动传递和配置客户端网络参数。后来,又在网上查到了QQ的底层通信协议,想利用QQ通信协议,传递地址信息。软件做出来后发现这个通信协议是腾迅公司为了照顾早期版本的手机QQ能正常登录所保留的旧协议,对曾经用新版本QQ登录过QQ号,这个通迅协议就失效了,而且以后这个协议肯定会被腾迅公司抛弃,而新通信协议是不公开的。这就给这个软件带来了潜在的不确定性,没有使用前景,所以也只能放弃。又经过对Windows Live Messenger(MSN的新版),雅虎通,飞信等即时通信系统的研究,发现微软公司的Windows Live Messenger服务很适合。两位老师在一个“开源中国社区”的网站上发现看到一篇作者吴滂的文章MSNPSharp发送消息过程详解 ,文中详细介绍了MSNPSharp支持MSN绝大部分的功能,包括:聊天,发送、接收离线消息,接收用户显示图片,更改自己显示图片,文件传送,闪屏震动等等。又因为微软对Windows Live Messenger的通迅协议是公开的,MSNP-Sharp是一个能与MSN Messenger(现Windows Live Messenger)服务连接并向客户端编程人员提供相应的IM服务的“中间件”,MSNPSharp是专门针对Windows Live Messenger通信协议设计的,支持.net调用,功能强大,而且Windows Live Messenger是当今世界最流行的即时通迅工具之一,服务稳定,能够满足这个应用开发的需要。五、软件功能设计1.自动登录功能,软件能够自行登录Windows Live Messenger服务接口,不需人工干预。2.自动传输地址功能,客户端自动发送索要服务器地址的请求信息,服务器端收到请求信息后,获取服务器所在公网地址并自动向客户端发送地址信息。3.监视功能,服务器端可监视客户端是在线情况,客户端也可监视服务器是否就绪。4.聊天功能,服务器和客户端可进行聊天,服务器还有群发信息的功能。5.信息加密功能,为了保障应用系统的安全,所有经过Windows Live Messenger服务传递的信息都进行了加密。6.自动配置和启动软件的功能,软件利用接收到的服务器地址自动配置好商业管理软件的客户端网络参数,然后启动该软件。六、系统开发环境1.C#,利用Microsoft visual Studio 2010编程环境,c#功能强大,使用方便,开发周期快,运行稳定。2.MSNPSharp是一个谷歌公司开发的能与Windows Live Messenger服务连接并向客户端编程人员提供相应的IM服务的“中间件”,其前身为DotMSN。3.Windows Communication Foundation (WCF),WCF是一个面向服务编程的综合分层架构。该架构的顶层称为服务模型层(Service Model Layer),使用户用最少的时间和经历建立自己的软件产品和外界通信的模型。利用WFC来编写模仿商业软件的服务端功能,做效果验证。4.ADSL、 3G无线上网或其它方式的网络环境,该环境下,电信运营商分配IP地址为动态分配,每次接入,分配的IP地址都不一样。七、软件设计原理及工作示意图1.采取CS(Client-Server)模式。服务端的软件用来获取服务器的公网IP,监视客户端在线情况,接受客户端发来的地址请求消息,并自动发送服务器地址。客户端监视服务器就绪情况,并发送地址请求消息,收到服务器地址后,配置和启动商业软件的客户端。.注册几个Windows Live Messenger账号,为客户端、服务器分配不同账号,服务器把客户端账号加为好友。服务器端和客户端都把Windows Live Messengerr的账号写在配置文件里,以方便用户调整账号和更换密码,软件从配置文件里读取账号和密码。调用MSNPSharp的登录功能(Login),使软件具有自动登录Windows Live Messenger服务的功能。并利用MSNPSharp的ContactList来列举好友。.利用MSNPSharp提供的ContactOnline和ContactOffline事件,也就是好友上下线通知的功能,实现服务器和客户端上下线互相通通知功能。以使客户端能够了解到服务器是否启动,服务器也能了解到有多少个用户正在使用服务,从而达到对整个应用的监视功能。4.取得服务器所在公网的IP地址,有的服务器直接用ADSL适配器接入,这种方式直接用.NET自带的DNS解析功能可得到,但是有的服务器是通过路由器进行映射出去的,服务器端得不到路由器WAN口(公网口)的地址。为了解决这个问题,系统利用.NET的WebBrowse从后台访问一个可快速返回网络出口的地址(),并通过网页元素提取技术得到服务器的公网地址。.利用MSNPSharp的消息接收和发送接口发送信息,客户端发送一个“Give me IP”的消息,服务器收到这个消息后,就会把服务器所在网络的IP添加了特殊的标志后发送给客户端,客户端收到后提取出IP地址,并配置好商业管理软件(如数据库访问终端等应用软件)客户端的网络参数,同时自动启动配置好的应用软件。利有这个接口,软件还开发了聊天工能,使服务器和客户端可以进行聊天,服务器还有群发消息的功能,方便了系统的管理。6.为了保证系统的安全,没有调用Windows Live Messenger的信息加密功能,因为如果账号被盗用,也可以得到服务器的IP,这是很危险的,所以采用对称加密算法,对传输的信息加密,别人即使盗用Windows Live Messenger账号或使用网络抓包等手段得到消息也解不了密。软件运行过程的概略示意图如下:如服务器就绪求户NE外开始登录监听服务器就绪情况接收地址并配置应用程序参数启动应用程序开始登录获取服务器公网地址监听客户端请求接收和发送消息MSN服务向服务器发送地址请求(信息加密)向客户端发送服务器地址(信息加密)服务端示客户端八、软件测试为了检验软件的效果,利用Windows Communication Foundation (WCF)设计了一个数据库访问的服务,数据库用的是一个用ACCESS做的学生信息数据库,客户端的应用软件有对学生信息查询、添加、删除的功能。通过测试,能够快捷准确的配置好学生信息查询应用软件的网络参数,达到了全自动配置的效果。为了检验这个软件的可用性,又对不同网络联接方式的其它类似的商业管理软件的客户端配置做了测试,如*等多家公司的商业管理软件的客户端进行了配置测试,均能正确配置好客户端的网络参数。现在已经有多家连锁商家正在使用这个软件,使用方便,反映良好。又经300多次的连接测试,软件运行稳定,配置客户端的网络参数准确,达到了预想的设计目标。九、结论通过我们几位同学的自主发现问题,明确问题,方案设计,方案评测以及方案完善,在*老师和付工程师的大力帮助下,是我们对计算机编程加深了兴趣,对于我们自主解决问题的能力得到了提升。在此,我们表示诚挚的感谢!对动态IP环境下客户端自动获取服务器地址新方法的研究,设计软件,利用Windows Live Messenger服务传递服务器地址,并自动配置客户端的方法,经实践检验想比其它方法具有无费用、稳定、安全的特点,具有较高的使用价值,值得推广应用。