国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于WCF判別內(nèi)外網(wǎng)訪問(wèn)服務(wù)器的方法

2014-04-01 07:14,
關(guān)鍵詞:內(nèi)網(wǎng)配置文件IP地址

, ,

(河南大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,河南 開(kāi)封 475004)

隨著信息化進(jìn)程的不斷推進(jìn),越來(lái)越多的公司遇到內(nèi)外網(wǎng)同時(shí)訪問(wèn)服務(wù)器的問(wèn)題,目前解決此問(wèn)題有兩種方法:①服務(wù)器發(fā)布兩套服務(wù),一套針對(duì)內(nèi)網(wǎng)用戶,一套針對(duì)外網(wǎng)用戶;②通過(guò)“域名”來(lái)實(shí)現(xiàn)內(nèi)外網(wǎng)統(tǒng)一訪問(wèn)[1]。方法①會(huì)有大量重復(fù)工作,浪費(fèi)資源,不可行;方法②能使內(nèi)外網(wǎng)用戶利用同一個(gè)域名統(tǒng)一訪問(wèn)服務(wù)器,雖然也能解決內(nèi)外網(wǎng)同時(shí)訪問(wèn)的問(wèn)題,但是需要單獨(dú)安裝部署內(nèi)網(wǎng)DNS服務(wù)器,大大增加了成本。

隨著互聯(lián)網(wǎng)絡(luò)、計(jì)算機(jī)技術(shù)的快速發(fā)展,相關(guān)專業(yè)人士已經(jīng)解決了同一服務(wù)器跨越內(nèi)外網(wǎng)提供服務(wù)的網(wǎng)絡(luò)技術(shù)問(wèn)題,通過(guò)網(wǎng)絡(luò)地址轉(zhuǎn)換技術(shù)(NAT)實(shí)現(xiàn)服務(wù)器內(nèi)外網(wǎng)IP端口映射[2-4]。但對(duì)于服務(wù)器和客戶端的通信問(wèn)題以及內(nèi)外網(wǎng)用戶區(qū)分的問(wèn)題,還需進(jìn)一步探討?;诖?,本文提出了一種基于WCF通信技術(shù)判別內(nèi)外網(wǎng)訪問(wèn)服務(wù)器的方法。

1 內(nèi)外網(wǎng)問(wèn)題

服務(wù)器位于內(nèi)網(wǎng),分配一個(gè)內(nèi)網(wǎng)IP,便于為內(nèi)網(wǎng)用戶提供服務(wù);通過(guò)NAT可以獲取一個(gè)外網(wǎng)IP端口,便于為外網(wǎng)用戶提供服務(wù)。用戶根據(jù)所處內(nèi)外網(wǎng)環(huán)境不同而采用不同的路徑訪問(wèn)。內(nèi)外網(wǎng)問(wèn)題可描述為如何區(qū)分用戶所處環(huán)境,并賦予其相應(yīng)的訪問(wèn)路徑,使其能正常訪問(wèn)服務(wù)器。這就需要解決服務(wù)器和客戶端的通信問(wèn)題。

公司對(duì)外發(fā)布Web服務(wù)和FTP服務(wù),用戶訪問(wèn)公司的Web服務(wù)和通過(guò)網(wǎng)頁(yè)鏈接訪問(wèn)FTP服務(wù)時(shí),要能正確區(qū)分內(nèi)外網(wǎng)用戶,使他們均能按照權(quán)限管理策略,采用正確的訪問(wèn)路徑正常訪問(wèn)和下載數(shù)據(jù)。解決此問(wèn)題的系統(tǒng)網(wǎng)絡(luò)拓?fù)淙鐖D1所示。

2 基于WCF技術(shù)判別訪問(wèn)的方法

WCF(Windows Communication Foundation)是由微軟開(kāi)發(fā)的一系列支持?jǐn)?shù)據(jù)通信的應(yīng)用程序框架,它集成了Web服務(wù)、遠(yuǎn)程處理、消息隊(duì)列以及各種通信協(xié)議,并提供了可擴(kuò)展通信技術(shù),是一個(gè)用于創(chuàng)建和運(yùn)行分布式系統(tǒng)的技術(shù)集合,使用它能創(chuàng)建安全的、可靠的、跨平臺(tái)的分布式解決方案,且能與已有系統(tǒng)兼容協(xié)作。

本文采用WCF技術(shù)解決客戶端和服務(wù)器端跨越內(nèi)外網(wǎng)的通信問(wèn)題,并利用WCF服務(wù)來(lái)判別內(nèi)外網(wǎng)用戶,解決了系統(tǒng)兼容性問(wèn)題。由于WCF技術(shù)具有跨平臺(tái)、可多種程序作宿主的特性,所以,在不同平臺(tái)、不同程序的開(kāi)發(fā)中被廣泛應(yīng)用,亦即,本文解決內(nèi)外網(wǎng)問(wèn)題的方法可推廣到多種開(kāi)發(fā)程序中。

圖1 系統(tǒng)網(wǎng)絡(luò)拓?fù)鋱D

2.1 方法原理

將FTP服務(wù)器的內(nèi)、外網(wǎng)IP地址和端口號(hào)分別按照一定的格式寫(xiě)入配置文件,并將內(nèi)網(wǎng)IP地址范圍也寫(xiě)入配置文件。服務(wù)器端創(chuàng)建WCF服務(wù),獲取配置文件中FTP服務(wù)器的內(nèi)、外網(wǎng)IP地址和端口號(hào),并分別將其加工成內(nèi)、外網(wǎng)數(shù)據(jù)下載訪問(wèn)路徑。同時(shí),獲取配置文件中內(nèi)網(wǎng)IP地址范圍。用戶登錄Web網(wǎng)站,在客戶端發(fā)送數(shù)據(jù)下載請(qǐng)求,調(diào)用WCF服務(wù),與服務(wù)端進(jìn)行通信,服務(wù)端接收請(qǐng)求,并從消息屬性中獲取用戶IP,將其與內(nèi)網(wǎng)IP地址范圍進(jìn)行對(duì)比,判斷用戶是否屬于內(nèi)網(wǎng)。然后根據(jù)判斷結(jié)果,采用相應(yīng)的訪問(wèn)路徑鏈接到FTP下載頁(yè)面,使用戶能正常下載數(shù)據(jù)。方法原理流程如圖2所示。

圖2 方法原理流程圖

2.2 實(shí)現(xiàn)過(guò)程

首先,分別獲取配置文件中FTP的內(nèi)、外網(wǎng)訪問(wèn)路徑和內(nèi)網(wǎng)IP地址范圍。具體步驟是:①在網(wǎng)站的服務(wù)器端創(chuàng)建WCF服務(wù),讀取配置文件中FTP的內(nèi)、外網(wǎng)IP地址和端口號(hào);②將上述信息加工成內(nèi)、外網(wǎng)FTP下載地址;③讀取配置文件中的內(nèi)網(wǎng)地址范圍。其次,獲取客戶端用戶IP并判斷是否屬于內(nèi)網(wǎng)。

用戶訪問(wèn)網(wǎng)站時(shí),客戶端和服務(wù)端會(huì)互傳消息,應(yīng)用WCF通信技術(shù),可以跨平臺(tái)、跨越網(wǎng)絡(luò)。在網(wǎng)站后臺(tái)服務(wù)端創(chuàng)建WCF服務(wù),獲取這些消息的屬性,從中獲取客戶端用戶的IP。步驟如下:

(1)獲取當(dāng)前線程的執(zhí)行上下文:

OperationContext context =

OperationContext.Current

(2)獲取上下文中傳入消息的消息屬性:

MessageProperties messageProperties =

context.IncomingMessageProperties

(3)使得發(fā)送消息的客戶端IP地址和端口號(hào)可用:

RemoteEndpointMessageProperty endpointProperty=messageProperties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty

(4)獲取發(fā)送消息的客戶端的IP地址:

string clientIP =

endpointProperty.Address;

(5)將獲取的用戶IP和內(nèi)網(wǎng)地址范圍對(duì)比,判斷其是否屬于內(nèi)網(wǎng):

string[] innerIpStart =

Option.Parameter.InnerFTPipStart.Split('.');

string[] innerIpEnd =

Option.Parameter.InnerFTPipEnd.Split('.');

string[] clientIPs=clientIP.Split('.');

if (clientIPs[0] ==

innerIpStart[0]&&clientIPs[1]==innerIp

Start[1]&&clientIPs[2]==innerIpStart[2])

{

if (int.Parse(clientIPs[3]) >

int.Parse(innerIpStart[3])

&&int.Parse(clientIPs[3]) <

int.Parse(innerIpEnd[3]))

flag = true;

}

else

flag=false

最后,Web前臺(tái)客戶端根據(jù)上述判斷結(jié)果采用相應(yīng)的下載路徑:內(nèi)網(wǎng)IP采用內(nèi)網(wǎng)下載路徑,外網(wǎng)IP采用外網(wǎng)下載路徑,鏈接到FTP。

外網(wǎng)用戶訪問(wèn)服務(wù)時(shí),由于跨越內(nèi)外網(wǎng)以及安全措施防火墻,客戶端不能直接訪問(wèn)服務(wù)器端的配置文件,不能做相關(guān)操作,需要通過(guò)WCF技術(shù)與服務(wù)器端進(jìn)行通信來(lái)完成這些操作,從而實(shí)現(xiàn)內(nèi)外網(wǎng)的隔離并做到實(shí)時(shí)傳輸數(shù)據(jù)。

判別內(nèi)外網(wǎng)用戶是后臺(tái)服務(wù)器執(zhí)行的。終端用戶訪問(wèn)網(wǎng)頁(yè),進(jìn)行下載操作,只要正常鏈接到FTP,即可下載數(shù)據(jù)。

2.3 項(xiàng)目驗(yàn)證

在“XX業(yè)務(wù)化運(yùn)行系統(tǒng)——用戶服務(wù)分系統(tǒng)”中,如圖3所示,用戶下載產(chǎn)品時(shí)需要解決內(nèi)外網(wǎng)問(wèn)題,采用的就是本文提出的解決辦法。

圖3 XX業(yè)務(wù)化運(yùn)行系統(tǒng)——用戶服務(wù)分系統(tǒng)主界面

用戶選擇要下載的產(chǎn)品,點(diǎn)擊【下載】按鈕,等待后臺(tái)服務(wù)器處理。未應(yīng)用此方法時(shí),不管配置文件中填寫(xiě)的是FTP服務(wù)器內(nèi)網(wǎng)IP地址還是外網(wǎng)IP地址,總有一些用戶(可能是內(nèi)網(wǎng)用戶,也可能是外網(wǎng)用戶)在發(fā)出數(shù)據(jù)下載請(qǐng)求時(shí),系統(tǒng)出現(xiàn)問(wèn)題,不能正常鏈接到FTP下載頁(yè)面。應(yīng)用此方法后,系統(tǒng)即可鏈接到FTP,下載產(chǎn)品,如圖4所示。

由圖3、圖4可知,用戶提出請(qǐng)求,系統(tǒng)后臺(tái)服務(wù)采用此方法進(jìn)行處理,最終解決內(nèi)外網(wǎng)問(wèn)題,無(wú)論是內(nèi)網(wǎng)用戶還是外網(wǎng)用戶,都能正常鏈接到FTP,下載產(chǎn)品。

3 結(jié) 語(yǔ)

基于WCF技術(shù)判別訪問(wèn)服務(wù)器的方法,既解決了客戶端和服務(wù)端的通信問(wèn)題以及內(nèi)外網(wǎng)用戶區(qū)分的問(wèn)題,使內(nèi)外網(wǎng)用戶均能正常訪問(wèn)FTP服務(wù)器,又沒(méi)有增加額外的開(kāi)銷(xiāo),實(shí)用可行。判斷用戶IP是否屬于內(nèi)網(wǎng)以及FTP下載地址的轉(zhuǎn)換都是在后臺(tái)服務(wù)中進(jìn)行的,用戶只需點(diǎn)擊網(wǎng)頁(yè)鏈接即可通過(guò)FTP下載數(shù)據(jù),操作界面友好,符合用戶需求。應(yīng)用WCF技術(shù),可跨越內(nèi)外網(wǎng)進(jìn)行通信,適用于多種宿主程序,可跨平臺(tái),與已有系統(tǒng)兼容協(xié)作。由于上述優(yōu)勢(shì),此方法亦適用于服務(wù)器采用雙網(wǎng)卡情況以及其他獲取服務(wù)器內(nèi)外網(wǎng)IP地址的情況。

圖4 應(yīng)用WCF技術(shù)后鏈接到FTP的下載界面

參考文獻(xiàn):

[1] 森林.實(shí)戰(zhàn)Web服務(wù)器內(nèi)外網(wǎng)訪問(wèn)難題[J].個(gè)人電腦,2010(11):98-99.

[2] 鄢萍,易潤(rùn)忠,童亮.基于DDNS和NAT的服務(wù)器內(nèi)外網(wǎng)動(dòng)態(tài)映射[J].計(jì)算機(jī)工程,2008,34(20):136-137.

[3] 廖龍俊.怎樣實(shí)現(xiàn)內(nèi)外網(wǎng)同時(shí)訪問(wèn)[J].電腦編程技巧與維護(hù),2012(7):91-92.

[4] 陳靜,宋偉,汪凱.通過(guò)NAT進(jìn)行雙向訪問(wèn)的方法:中國(guó),CN1561061 [P].2004-02-27.

[5] 謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].北京: 電子工業(yè)出版社, 2007.

[6] Michele Leroux Bustamante.Learning WCF [M].Beijing: O'Reilly Media, 2007.

[7] Richard W.WCF: A Case Study Involving a Distributed Client/Server Game[J].Journal of Object Technology, 2009, 8(2):71-90.

猜你喜歡
內(nèi)網(wǎng)配置文件IP地址
從Windows 10中刪除所有網(wǎng)絡(luò)配置文件
用軟件處理Windows沙盒配置文件
鐵路遠(yuǎn)動(dòng)系統(tǒng)幾種組網(wǎng)方式IP地址的申請(qǐng)和設(shè)置
互不干涉混用Chromium Edge
基于Zookeeper的配置管理中心設(shè)計(jì)與實(shí)現(xiàn)
企業(yè)內(nèi)網(wǎng)中的數(shù)據(jù)隔離與交換技術(shù)探索
內(nèi)外網(wǎng)隔離條件下如何實(shí)現(xiàn)郵件轉(zhuǎn)發(fā)
公安網(wǎng)絡(luò)中IP地址智能管理的研究與思考
《IP地址及其管理》教學(xué)設(shè)計(jì)