ftp案例分析
❶ 如何使用Wireshark 進行監聽TCP ftp HTTP三個協議
Wireshark 進行監聽TCP FTP HTTP三個協議
一、下載安裝wireshark 從http://www.wireshark.org/ 下載安裝Windows平台的wireshark,雙擊安裝文件安裝即可,在安裝過程中注意選擇安裝winpcap。
二、啟動wireshark後,選擇工具欄中的快捷鍵(紅色標記的按鈕)即可Start anewlivecapture。
建立命令通道的包交互過程中,有很多FTP命令,包括了SYST、PWD、CWD等,是FTP的標准命令,網路上都可以查到。
Wireshark 進行監聽TCP FTP HTTP完成。
❷ 【實戰演練】Packet Tracer玩轉CCNA實驗20-構建企業內部網路綜合案例(上)
CCNA網路部分的知識點已經全部講完了,最後我們通過一個典型的企業總部與分支機構構建內部網路的綜合案例,對前面學過的知識點進行回顧與總結。
1.1技術需求
通過對企業內部的了解,及其對企業網路功能要求的了解。我們對其企業網在技術方面做出了如下的分析:
1)主網路首先接入互聯網,達到百兆隨後到終端,信息管理中心選取三層交換機設備,終端選取二層交換機設備接入主網路。
2)在該網路中,私有IP地址與公網IP地址的轉換可以通過網路地址轉換技術完成。
3)建立文件傳輸協議伺服器、Web伺服器、電子郵件伺服器等。
4)劃分區域網,給不同的部門分配不同的區域網,控制廣播風暴。
5)配置DHCP,使在同一個區域網中的主機可以自動獲得IP地址。
6)在網路安全方面,配置訪問控制列表對數據包進行控制。
1.2設計需求
為了滿足XXX企業對企業網路的要求,設計出來的網路必須具備以下幾個條件:
1)既能覆蓋企業本地又能實現與外界通信的計算機企業網路,並且該網路不但能實現本地與本地、本地與外界的合理通信與資源共享,而且還得實現外界用戶有條件地對企業內部伺服器進行資源訪問。
2)一個穩健、安全、快速的網路必須要選用先進的網路碼閉設備陸衫,和行之有效的網路技術。比如,網路核心層的交換機就可以選用CISCO系列的交換機;要保證企業網路的安全與穩定則必須在企業內網與外網之間搭設一道防火牆;要實現網路的負載均衡則需要使用到HSRP技術、實現鏈路冗餘則需要用到RSTP技術等等。
3)企業網路的管理最好是以部門為單位,那麼就必須給企業的網路劃分VLAN;而企業要求員工在企業外部通過Internet網路來以企業內部員工的身份訪問企業內部網路則必須用到IPSec-VPN技術。
4)電腦自動獲取IP地址,則需架設DHCP伺服器。
5)提供無線上網功能,則必須得有無線路由設備。
6)公司員工文件服務的貢獻與相互傳送,則需在企業早模腔內部架設FTP文件傳輸伺服器(為了安全,FTP伺服器需架設在防火牆的DMZ區)。
7)信息發布到Internet網路,並讓外界用戶進行訪問,則需架設Web伺服器(為了安全,Web伺服器需架設在防火牆的DMZ區)。
8)公司網路需具備域名解析需求,還得架設DNS域名解析伺服器。
9)網路數據的快速傳遞,需要購進100M、1000M、10000M網線若干。
10)設備選擇上必須在技術上具有領先性,通俗性,且必須便於管理,維護。要具備未來良好的延展性,可升級性。
根據上述的需求,我們設計的拓撲如下:
動手之前,最好弄個表格,最好IP地址與VLAN規劃。做到哪裡想到哪裡敲到哪裡肯定是不行的。
由於綜合案例貼近實際生產,需求點過多,因此不可能做到哪裡配到哪裡,我們按照各個需求與網路分層,逐個需求各個擊破。
3.1.1配置VTP
配置核心交換機與接入交換機。Core-SW配置VTP,並且配置VLAN。接入交換機上行鏈路需要配置為Trunk模式,Core交換機互聯鏈路需要配置為Trunk模式。
Core-SW1:
Core-SW2:
JT-SW1~SW4:
3.1.2配置VLAN
配置Server區為內部Server,不能被外網訪問,只能內網訪問。DMZ區部署可以對外提供訪問的Server,IT、CW、XZ分別為IT部、財務部、行政部員工辦公網路
Core-SW1:
查看VLAN同步情況。
JT-SW1:
3.1.3配置生成樹
Core-SW1:
Core-SW2:
JT-SW1~4:
3.1.4配置接入交換機VLAN
JT-SW1:
JT-SW2:
JT-SW3:
JT-SW4:
3.1.5配置核心交換機虛介面SVI
Core-SW1:
Core-SW2:
3.1.6配置核心交換機HSRP高可用
Core-SW1:
Core-SW2:
檢測配置
檢查HSRP的Acitve與Standby自動切換。
在Core-SW1的fa0/2關閉埠,再show standby brief查看切換情況。
自動切換生效,重新把fa0/2開啟回去。
3.1.7配置核心交換機DHCP Relay
這個內容超綱,之前是沒有講過的,主要是為了使用DHCP伺服器為終端自動分發地址。但是DHCP伺服器默認只能為與其同網段的終端通信與分配IP地址。所以要在路由器/三層交換機上面,配置DHCP Relay,才能使每個網段,規定跨網段去哪個IP地址的DHCP伺服器申請自動分配IP地址。另外按照規劃, DHCP伺服器的IP地址是10.1.5.20 。
Core-SW1:
Core-SW2:
3.1.8配置伺服器
3.1.8.1配置DHCP伺服器
DHCP伺服器主要作用在於給接入網路的終端自動分配IP地址。
新建DHCP伺服器,選「Service」,將除DHCP、NTP以外的其他功能關閉。
設置DHCP配置,將需要DHCP的網段都加入到裡面。
為DHCP伺服器配置靜態IP地址。
打開其中一台PC,如JT-IT1,IP配置選擇DHCP,然後在cmd窗口輸入ipconfig查看是否已經能夠自動獲取IP地址。
3.1.8.2配置WEB伺服器
除HTTP與NTP,其他服務關閉。
注意WEB伺服器接入交換機的埠,按照上面的vlan劃分,是在fa0/11,劃入vlan16。
配置固定IP。
檢查配置
打開其中一台PC,如JT-IT1,打開Web Browser。
輸入10.1.6.10,進行測試,是否能夠正常返回頁面。
3.1.8.3配置DNS伺服器
新建DNS伺服器,選「Service」,將除DNS、NTP以外的其他功能關閉。
配置靜態IP地址。
在之前配置的DNS伺服器(10.1.5.10)上面增加WEB伺服器的域名解析記錄。
再次選擇剛才的PC,JT-IT1,打開Web Browser,然後通過域名 http://www.workspace.com 訪問10.1.6.10網站。正常打開網站證明DNS解析生效。
3.1.8.4配置FTP伺服器
配置FTP伺服器,除FTP與NTP,其他服務關閉。FTP伺服器接入JT-SW1的fa0/12埠。
FTP伺服器配置固定IP地址。
檢查配置:
JT-IT1電腦,點擊FTP進行訪問。用戶名cisco,密碼cisco。
3.1.8.5配置EMAIL伺服器
EMAIL伺服器,除EMAIL與NTP服務保留,其餘關閉。(set按鈕記得要按,否則域名不生效)添加EMAIL賬戶。
Email伺服器配置固定IP地址。
DNS添加域名解析記錄。(注意區分哪條是A記錄,哪2條是CNAME記錄)
選擇2台PC進行測試,選用JT-IT1、JT-XZ1,分別配置各自的EMAIL賬戶,點擊SAVE保存。
點擊Compose嘗試發件。
點擊Receiver進行查收。
3.1.9配置無線WIFI
增加無線路由器
筆記本關機。
將有線網卡拖動移除,然後拖動無線網卡安裝,然後按電源鍵重新開機。
配置無線網路SSID與密碼,接入無線網路。
有信號就已經連接上。
至此,集團總部內網二層網路與三層VLAN終結配置完畢,並且內網終端已經能夠有線與無線接入公司網路,已經實現DHCP自動獲取IP地址,發郵件,訪問公司WEB與FTP服務。
下一篇我們繼續實現公司三層路由、出口訪問公網、公網訪問DMZ區WEB伺服器,分支機構與VPN等需求的配置。
❸ ASP文件上傳原理分析及實現實例
摘要 在基於/的應用環境中 上傳各種類型的文件一直是困擾用戶文件管理應用的難題之一 在HTTP中上傳文件有三種機制 RFC PUT和WebDAV 常用的實現方法是利用在RFC 中引入的一個新類型 File以及ADO Stream對象 本文對上述上傳方法及實現原理作了論述 並給出了具體解決實例 ASP FILE對象
當前 基於/模式的應用比較流行 當用戶需要將文件傳輸到上時 常用方法之一是運行FTP並將每個用戶的FTP默認目錄設為用戶的Web主目錄 這樣用戶就能運行FTP客戶程序並上傳文件到指定的 Web目錄 這就要求用戶必須懂得如何使用FTP客戶程序 因此 這種解決方案僅對熟悉FTP且富有經驗的用戶來說是可行的 如果我們能把文件上傳功能與Web集成 使用戶僅用Web就能完成上傳任務 這對於他們來說將是非常方便的 但是 一直以來 由於File System Object的僅能傳送文本文件的局限 所以ASP最大的難題就是文件上傳問題 下面介紹的就是如何在基於HTTP協議的網頁中實現文件的上傳
一 通過HTTP上傳的三種機制
通過HTTP上傳有三種機制 RFC PUT 和 WebDAV
PUT 是在HTTP 引入了一個新的HTTP動詞 當web收到一個HTTP PUT和對象名字 它將會驗證用戶 接收HTTP流的內容 並把它直接存入web 由於這可能會對一個web站點造成破壞 並且還會失去HTTP最大的優勢 可編程性 在PUT的情況下 自己處理請求 沒有空間讓CGI或者ASP應用程序介入 唯一讓你的應用程序捕獲PUT的方法是在低層操作 ISAPI過濾層 由於相應的原因 PUT的應用很有限
而WebDAV允許web內容的分布式拆吵認證與翻譯 它引入了幾種新的HTTP動詞 允許通過HTTP上傳 鎖定/解鎖 登記/檢驗web內容行御知 Office 中的 Save to web 就是通過WebDAV來實現的 如果你所感興趣的一切都是上傳內容 WebDAV應用得非常出色 它解決了很多問題 然而 如果你需要在你的web應用程序裡面上傳文件 WebDAV對你就毫無用處可言 象HTTP PUT一樣 那些WebDAV的動詞是被解釋的 而不是web應用程序 你需要工作在ISAPI過濾層來訪問WebDAV的這些動詞 並在你的應用程序中解釋內容
RFC () 最終被W C在HTML 中接受前 是作為一種建議標准 它是一種非常簡單但是功能很強大的想法 在表單欄位中定義一個新類型 <INPUT TYPE= FILE >
並且在表單本身加入了不同的編碼方案 不再使用典型的 <FORM ACTION= formproc asp METHOD= POST > 而是使用 <FORM ACTION= formproc asp METHOD= POST ENCTYPE= multipart/form data >這種編碼方案在傳送大量數據的時候 比起預設的 application/x url encoded 表單編碼方案 顯得效率要高得多 URL編碼只有很有限的字元集 使用任何超出字檔消符集的字元 必須用 %nn 代替 這里的nn表示相應的 個十六進制數字 例如 即使是普通的空格字元也要用 % 代替 而RFC 使用多部分MIME編碼 就象通常在e mail消息中看到的那樣 不編碼來傳送大量數據 而只是在數據周圍加上很少的簡單但實用的頭部 主要的廠商都採用了建議的 瀏覽…… 按鈕 用戶能很容易的使用本地 打開文件…… 對話框選擇要上傳的文件
RFC 仍然將大多數文件上傳的靈活方法留給了你的web應用程序 PUT用得很有限 WebDAV對內容的作者很有用 比如FrontPage用戶 但是對想在web應用程序中加入文件上傳的web開發者來說很少用到 因此 RFC 是在web應用程序中加入文件上傳的最好的辦法
在實際應用中 免費提供了Posting Acceptor ASP不懂 multipart/form data 編碼方案 取而代之 提供了Posting Acceptor Posting Acceptor是一種在上傳完成後 接受REPOST到一個ASP頁的ISAPI應用程序
Sofare Artisans的SA FileUp是最早的商業Active Server之一 幾經改進 現在作為一個純粹的ASP存在
二 基於ASP的文件上傳實現原理分析
基本原理是 採用ADO Stream對象的BinaryRead方法將FORM中的所有數據讀出 從中截取出所需的文件數據 以二進制文件方式存檔
下面是上傳文件頁面的一個例子() <><body><form name= Upload Method= Post Enctype= multipart/form data Action= Upload asp ><input type= file name= FileName ><INPUT TYPE= Submit VALUE= Upload ></TD></form></body></>
程序中使用了文件對象 這樣在Upload asp中採用BinaryRead方法讀來的原始數據就不僅僅是選擇的文件本身的數據 還包含該文件在用戶硬碟上的路徑 類型 提交頁面的表單等相關信息的描述 這樣我們就需從中提取出文件的具體內容 根據分析 數據的頭部信息與數據的分界線是兩對回車換行符 尾部也有分隔信息 我們可以採用類似以下的方法獲取文件數據 Dim FormData FormSize DataStart CLStr DivStrFormSize=Request TotalBytesFormData=Request BinaryRead(FormSize)CLStr=ChrB( )&ChrB( )DataStart=InStrB(FormData CLStr&CLStr)+ 是兩對回車換行符的長度DivStr=LeftB(FormData InStrB(FormData CLStr) )DataSize=InStrB(DataStart+ FormData DivStr) DataStart FormData=MidB(FormData DataStart DataSize) FormData就是文件的內容了 中間根據需要 可進行相應的處理 最後的工作就是將文件保存了 保存的方法可以有兩種 一種是利用VB或VC之類程序中的二進制文件操作方法 在工程中加入適當的類型庫 最終編譯成DLL文件 使用時再將該DLL文件注冊就可以了 文件存貯程序如下 Public Function SaveFile(Pathname As String) As String Dim objContext As ObjectContext Dim objRequest As Request Set objContext=GetObjectContext() Set objRequest=objContext( Request ) 以下的一段代碼是進行文件存貯的有關操作Dim FormData() As Byte CLStr DivStr Dim DataStart As Long DataSize As Long DataSize=objRequest TotalBytes Redim FormData(DataSize ) FormData=objRequest BinaryRead(DataSize) CLStr=ChrB( ) & ChrB( ) DataStart=InStrB(FormData CLStr & CLStr)+ DivStr=LeftB(FormData InStrB(FormData CLStr) ) DataSize=InStrB(DataStart+ FormData DivStr) DataStart FormData=MidB(FormData DataStart DataSize) 創建一個二進制文件並將FormData寫入其中 Open Pathname For Binary As Put # FormData Close # SaveFile= OK! End Function 第二種方法是利用ADO STREAM中提供的二進制文件操作方法來完成 保存文件的語句是 StreamOBJ SaveToFile (fileName ) 在 這種操作中 我們可以將有關的操作存放在一個類文件中 在應用時 直接將該類文件包含在ASP程序中就可以了 具體處理方法 請參閱有關介紹 三.文件上傳實現方法實例 實現文件上傳可使用或無方式 對於類 比如說microsoft posting acceptor(簡稱mpa) 就是公司發布的一個免費 這類的安裝也比較方便 對於的mpa 運行它的安裝文件就可以了 而一般的dll形式的 我們則需要進行注冊 例如 要使用aspcnUP dll 只要在Window 上執行regsvr [path]aspcnUP dll 系統出現注冊成功的信息提示就可以使用該了 對於無類 如的無上傳類 upload_ xsoft 在使用時 只要在處理程序中包含以下的語句就可以了 <! #include FILE= upload inc >set upload=new upload_ xSoft 建立上傳對象 有關的屬性與操作方法 請參閱該的使用手冊 下面是詀spcnUP dll為例 上傳部分類型文件的源代碼(upload asp) <% @ language= vbscript Set fileUP=Server CreateObject( aspcn Upload )fileUP Maxsize= fileUP Path= d:upfile fileUP UploadFor i= to fileUP Countfieldname=fileUP FieldName(i)If fileUP FileType(fieldname)= zip Or ileUP FileType(fieldname)= rar ThenfileUP Save fieldnameEnd If NextSet fileUP=Nothing%> 四.結束語 應用模式還在快速地發展著 在ASP.NET中 已經內置了文件上傳的功能 使用非常簡單方便 作為一種全新的技術 ASP.NET並不只是ASP的簡單升級 它是一個用於Web開發的全新框架 其中包含了許多新的特性 ASP.NET提供了更易於編寫 結構更清晰的代碼 利用這些代碼我們將會更容易地進行再利用和共享 從而開發出更多更實用的程序來 lishixin/Article/program/net/201311/13562
❹ Bat腳本處理ftp超強案例分析
前言 公司有幾百台windows伺服器 每次程序更新 如果是一台台拷數據 只怕安排十個人 一天都不一定做得完 所以就必須研究個全自動更新方案來 於是就想到了FTP 做個主FTP站 在幾百台客戶機上啟動BAT腳本 每 秒檢測一次 如果主站有更新程序 就自動下載更新 幾分鍾內 上 台windows伺服器 都可以全自動更新程序完畢 相當實用 現把當初研究BAT的腳本思路貼出來 希望對大批量運維人員一個方向 當然 批量更新伺服器 每個公司有它自己的解決辦法 這個BAT的方式不是最優的 可以用shell 可以用perl 也可以用python等腳本解決 一 FTP命令說明 在windows系統中因為FTP是一個程序 如果在bat腳本中直接調用FTP的命令 在執行時總會彈出命令行窗口 循環在>FTP游標這 所以要換種方式 利用 S:filename 更多的命令請輸入 h查看 FTP登錄成功後 需要下載遠程單個文件時 使用get命令 如果下載多個文件時 用mget 它支持通配符 在使用mget時 需要對每一個文件都進行選擇Y/N 如果想不交互的下載全部的文件 可以輸入一次prompt命令關閉交互方式 Mput和mget命令要注意兩個問題 Ⅰ 不能對目標文件指定命字 在命令行上所有的文件都視做源文件 Ⅱ mput mget兩個命令不能對目錄進行上傳與下載 只能對文件 Ⅲ Prompt 每次執行一個這個命令 就在on off之間循環 ftp腳本開始時 prompt默認為on 所以一般在上傳 下載文件時 執行一次prompt 把互動式的on關掉 變為off 文件的傳輸方式 Binary 二進制傳輸 Ascii ascII傳輸 在FTP文件傳輸過程中 ASCII傳輸HTML和文本編寫的文件 而二進制碼傳輸可以傳送文本和非文本(執行文件 壓縮文件 圖片等) 具有通用性 二進制碼傳輸速度比ASCII傳輸要快 所以在建立bat腳本時 一般輸入bin命令 啟用二進制傳輸 如果用ASCII模式傳輸非文本文件 可能會顯示一堆亂碼 如果是上傳一些CGI腳本 有可能將無法運行這類腳本 而在瀏覽器上看到server error的錯誤 Ascii和binary模式的區別是回車換行的處理 binary模式不對數據進行任何處理 asci模式將回車換行轉換為本機的回車字元 比如Unix下是 Windows下是 Mac下是 unix系統下行結束符是一個位元組 即十六進制的 A 而ms的系統是兩個位元組 即十六進制的 D A 所以當你用ascii方式從unix的ftp server下載文件時(不管是二進制或者文本文件 redhat的 vsftp默認是binary ascii默認關閉) 每檢測到一個位元組是 A 就會自動插入一個 D 所以如果你的文件是二進制文件比如可執行文件 壓縮包什麼的 就肯定不能用了 如果你的文件就是unix下的文本文件 你用 ascii模式是正確的 要是誤用了binary模式 你在windows上看這個文件是沒有換行的 裡面是一個個的黑方塊 在用FTP客戶端傳輸文件時 因為這些軟體都做得比較智能化 它可以根據後綴 自動啟用傳輸模式 所以不用擔心出問題 二 實例求證 環境說明 上有一FTP伺服器端(windows版) FTP用戶名為lgh 密碼為 該用戶的根目錄為D lgh 裡面文件見下圖 sql rar是sql bat的壓縮文件 大家注意看圖 我等下會在後面的實例中引用這個文件 把mget get prompt bin ascii等ftp命令詮釋得一清二白實例一 直接BAT調用FTP命令 ftpbat bat內容 (***大家建立bat文件不要命名為ftp bat 執行時會有問題***)
復制代碼 代碼如下:
ftp open lgh get sql rar bye
從圖上的結果看 bat腳本直接調用xp的FTP命令是不行的 執行時H:>ftp會一直死循環 我這里的XP系統是SP 的 其它版本的 我沒有作測試 如果有不同 歡迎大家留言告之 實例二 用put get上傳 下載單個文件 把XP機器上H:js目錄下文件flower zip上傳到FTP伺服器 把FTP伺服器中的sql rar文件下載到XP機器上的H:JS目錄 ftp get put bat內容如下
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo get sql rar >> %ftpfilename% echo put flower zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
我們來看看結果 見下面兩張圖 從XP系統上看 H盤的JS目錄 多了個sql rar FTP伺服器上的根目錄多了個flower zip 這說明 剛才的腳本完成正常的執行了 達到了預期的目的
實例三 用put get上傳 下載多個文件 在XP機器上把flower zip復制一次 改名為flower zip 在XP機器上把把第二次實例下載的sql rar文件刪除 以免影響到本次操作 在FTP伺服器上把第二次實例上傳的flower zip文件刪除 以免影響到本次操作 把XP機器上H:js目錄下文件flower zip 和flower zip上傳到FTP伺服器 ftp get put many bat內容如下
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
到FTP伺服器上查看根目錄 看flower zip與flower zip是否已成功上傳 從圖上看 只成功上傳了flower zip文件
剛那個ftp get put many bat腳本里echo put flower zip flower zip>> %ftpfilename% flower zip是傳輸的最後一個文件 是不是用put時 意味著bat在處理上傳時 只認最後一個文件呢 我們再多加個文件flower zip 來驗證
在XP機器上把flower zip復制一次 改名為flower zip在FTP伺服器上把第二次實例上傳的flower zip文件刪除 以免影響到本次操作
ftp get put many bat內容修改如下
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
結果 還是只成功上傳了flower zip 因bat雙擊時 執行過程會一閃而過 我們看不到執行過程 到命令行去執行下 看到底出了什麼問題
命令行 執行ftp get put many bat腳本 從執行情況看 flower zip三個文件都是put的 但在傳輸時 卻只傳了flower zip 真不解 有知道的朋友嗎?給點方向
再換個方式 用通配符* 試試 ftp get put many bat內容修改如下
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower* zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
在FTP伺服器上把上傳的flower文件全部刪除 以免影響到本次操作執行ftp get put many bat 結果只有flower zip文件上傳成功了 呵 flower zip文件 怎麼都不能上傳 ???
其實用put傳輸多個文件 完全可用重復的方式取代 比如 ftp get put many bat內容修改如下
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower zip >> %ftpfilename% echo put flower zip >> %ftpfilename% echo put flower zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
實例四 用mput mget上傳 下載多個文件 在FTP伺服器上刪除有關flower的文件ftp mget mput many bat內容如下:
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo mput flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
雙擊ftp mget mput many bat後 發現系統彈出一窗口後 就卡住了 停止不前
原因是用了mput命令 但沒有用Prompt關閉交互
ftp mget mput many bat內容修改如下:
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo Prompt >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo mput flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
再次執行ftp mget mput many bat 結果見下圖
用通配符*試試在FTP伺服器上刪除有關flower的文件ftp mget mput many bat內容修改如下:
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo Prompt >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo mput flower* zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
照樣成功上傳有關flower* zip文件 因為結果與上一步是一樣的 所以就不抓圖了 實例五 用ascii在windows系統間傳輸非文本文件 把XP電腦上的rmb jpg通過ascii傳到FTP伺服器的根目錄
ftp get ascii bat內容修改如下:
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo ascii >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put rmb jpg>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
執行ftp get ascii bat後 發現rmb jpg可以正常上傳 並且可以正常打開 那 這個現象與前面所以的ascii不能傳輸非文本東西有出入 這是怎麼回會事呢 這是因為 FTP伺服器是WINDOWS系統 XP電腦上的bat腳本也是在windows系統上運行的 所以bat在windows系統里用FTP傳輸文件 不管是用ascii 還是用binary 都是可以的 接下來我們再做一個實驗 FTP伺服器選centos 再測下ascii傳輸非文本文件問題 實例六 用ascii在windows系統與linux系統間傳輸非文本文件 在RHEL 位系統上建立一vsftpd伺服器 上面說過redhat默認啟用二進制傳輸 關閉了ascii碼傳輸 所以我們還要修改一下vsftpd的配置文件 修改/etc/vsftpd/nf文件 允許客戶端進行ascii傳輸 並重啟vsftpd
把rmb jpg放到FTP伺服器 大家注意下H:js目錄下只有ftp getascii bat文件
ftp getascii bat文件內容修改如下
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo ftp >> %ftpfilename% echo redhat >> %ftpfilename% echo asc >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo get rmb jpg >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
執行ftp getascii bat 看結果 rmb jpg文件有下載到XP電腦里 雙擊這個文件 發現圖像亂碼 文件被破壞了 都是ascii碼傳輸惹的禍換bin傳輸 測試一下在XP電腦上刪除rmb jpg文件 再雙擊ftp getascii bat文件 去從LINUX的FTP伺服器下載一個rmb jpg文件
修改ftp getascii bat 把ascii改給二進制傳輸
復制代碼 代碼如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo ftp >> %ftpfilename% echo redhat >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo get rmb jpg >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
結果 文件正常下載 圖像也顯示正常 lishixin/Article/program/qrs/201401/30223