>> Skok na menu >> Konec stránky

Domácí úkol: IZI220 Informační a komunikační systémy

Zadání:

Pomocí brány E-mail/FTP si nechte poslat binární soubor ze vzdáleného systému FTP. Rozdělený soubor řádně spojte, dekódujte (UUDECODE) a ověřte

Popis:

Pro zvládnutí zadané úlohy je nejprve potřeba si ujasnit co (jaký soubor) a odkud (FTP server) chceme dostat. Na síti Internet je spousty anonymních FTP serverů, na kterých se nalézá nesčetné množství souborů rozličných druhů. Ze zcela praktických důvodů jsem zvolil server (vzdálenostně) nejbližší, a to ftp.vse.cz. Pro tento příklad není rozhodující lokace a jméno FTP zdroje, tak proč zatěžovat síť downloadem ze vzdálených serverů. Na anonymním FTP serveru VŠE se nalézá mimo jiné spoustu užitečných programů, a proto místo obvyklého obrázku se pokusím nechat si poslat nějakou utilitu. Protože v poslední době převádím různé texty z prostředí MS-DOS do podoby vhodné pro WWW, může mě zajímat program pro konverzi Češtiny.
Druhým rozhodnutím je volba vhodného serveru poskytujícího služby FTPmail. Tyto servery s uživatelem komunikují prostřednictvím elektronické pošty, kdy uživatel do těla dopisu zadá příslušné příkazy FTP, FTPmail je provede na zvoleném serveru a výsledek (výpis adresáře, chybové hlášení, či soubor) pošle zpět na e-mailovou adresu odesilatele. Samozřejmě služba FTPmail není jedinou možností, jak získat ze serveru požadovaný soubor. Opomineme - li typický způsob pomocí FTP klienta, nebo přímo WWW prohlížeče (což není účelem tohoto příkladu), existují i služby jako GopherMail, WWWmail a jiné.
Na Českých i světových portálech lze nalézt mnoho odkazů na servery umožňující FTPmail. Opět protože nechci zbytečně zatěžovat přenosové cesty a preferuji rozumnou dobu odezvy, volím nejbližší server ftp.vslib.cz fyzicky umístěný na Technické universitě v Liberci. Komunikace s jinými, světovými servery je stejná a odezva v rozmezí několika minut rozhodně usnadní práci.

Postup:

    1. Nalezení a výběr souboru

Prvním krokem je seznámení se s možnostmi služby FTPmail a s formou komunikace. Proto jako první odesílám na adresu  ftpmail@ftp.vslib.cz email se slovem help. Server odpoví stručným seznamem platných příkazů a jejich vysvětlením a připojí několik příkladů, jak formulovat své dotazy.
Thank you for using FTPmail at the Technical University in Liberec, Czech 
Republic.

Valid commands to the email-ftp gateway are:

reply-to <email-address>    Sets to whom to send the response.  Defaults to
                            your incoming email address
open [site [user [pass]]]   Sets the site to make the FTP connection to.
                            Defaults are ftp.vslib.cz anonymous <reply-addr>
cd pathname                 Change directory.
dir [pathname]              Get a `long' listing of a directory.
get filename                Get a file and email it back.
compress                    Compress files/dir-listings before emailing back
gzip                        The same for GNU zip
ascii, binary               change the mode selected for the Get command.
                            Defaults to binary.
sleep <hours>               Let the job sleep in the queue for certain time.
quit                        End of input - ignore any following lines.


-------------------------------------------------------------------------------
                    `ftp.vslib.cz' is the default site
-------------------------------------------------------------------------------

Example scripts are:

dir
quit
     Connect to ftp.vslib.cz and send back the contents of the top level
     directory

open ftp.vslib.cz
cd pub/liane/software
get ftpmail.tgz
cd ../..
compress
ascii
get 00INDEX
quit
     Connect to ftp.vslib.cz, send back the file ftpmail.tgz in
     /pub/liane/software.  As this is a binary file it has to be 
     transfered in binary mode.  Because it is binary it will automatically
     be uuencoded. Then change to ../.. and mail back a compressed ftp archive
     listing.  Although compressing ascii file makes it binary, which then
     has to be uuencoded, it still ends up smaller than the original.

-------------------------------------------------------------------------------
Copyright (c) 1994-95 by Jiri A. Randus, University of Technology, Liberec, CZ
-------------------------------------------------------------------------------
Nyní již je jasné, jak komunikovat se službou FTPmail, a proto odesílám první dotaz. Protože nehledám konkrétní program na neznámém serveru (který bych si mohl nechat vyhledat např. službou ftpsearch.com a zjistit jeho adresu), ale vyberu si program ze serveru ftp.vse.cz, musím si nejprve pořídit výpis toho správného adresáře. Jelikož již znám adresářovou strukturu školního FTP serveru, nemusím postupovat od hlavního adresáře a mohu si jako výchozí zvolit adresář pub/msdos/programs-from-vse ve kterém jsou veřejně přístupné programy pro MS-DOS vytvořené studenty VŠE.
Můj druhý mail na ftp.vslib.cz tedy obsahuje tyto příkazy:
open ftp.vse.cz
cd pub/msdos/programs-from-vse
dir
quit
Z výše uvedené nápovědy je tedy jasné, že se nejprve připojím k serveru ftp.vse.cz, přepnu se do adresáře pub/msdos/programs-from-vse a pořídím si jeho výpis příkazem dir. Poté se od serveru odpojím. FTPmail mi jako odpověď zašle výstup mnou zadaných příkazů, tedy výpis adresáře pub/msdos/programs-from-vse.
total 104
drwxr-xr-x  2 20364  106  1024 Mar 11  1999 fun
-rw-r--r--  1 20364  106  6083 Jan 27 11:16 index.html
-rw-r--r--  1 20364  106  6115 Jan 27 11:18 index_asc.html
-rw-r--r--  1 20364  106  5396 Jun 16  1999 index_eng.html
-rw-r--r--  1 20364  106  6115 Jan 27 11:18 index_iso.html
-rw-r--r--  1 20364  106  6115 Jan 27 11:18 index_kam.html
-rw-r--r--  1 20364  106  6115 Jan 27 11:18 index_lat.html
-rw-r--r--  1 20364  106  6115 Jan 27 11:18 index_win.html
drwxr-xr-x  2 20364  106   512 Nov 17  1997 internet
drwxr-xr-x  3 20364  106   512 Nov 28  1997 kurzy
drwxr-xr-x  2 20364  106   512 Mar 15  1999 novell
drwsrwxrwt  2 20364  106   512 Sep 29  1999 pbl
drwxr-xr-x  2 20364  106   512 Nov 17  1997 pmail
drwxr-xr-x  2 20364  106   512 Feb 25  1999 servis
drwxr-xr-x  2 20364  106  1024 Mar 11  1999 typing
drwxr-xr-x  2 20364  106  1536 Mar 27  1998 util
Z tohoto výpisu mě může zajímat podadresář util, který obsahuje různé utility, mimo jiné jistě i konverzní programy. Následuje tedy mail, kterým požaduji výpis právě tohoto adresáře.
open ftp.vse.cz
cd /pub/msdos/programs-from-vse/util
dir
quit
Protože je tento adresář značně rozsáhlý, uvádím zde pouze část odpovědi:
total 8436
-rw-r--r--  1 20364  106      4386 Mar 27  1998 00_index.txt
-rw-r--r--  1 20364  106     72185 Jun  2  1997 2col_ui.zip
-rw-r--r--  1 20364  106      9663 Sep  6  1996 atc101.zip
-rw-r--r--  1 20364  106     44043 Feb 29  1996 autils.zip
-rw-r--r--  1 20364  106     21140 Jan 31  1996 balls.zip
-rw-r--r--  1 20364  106    186629 Mar 27  1998 bated20.zip
-rw-r--r--  1 20364  106     15769 Feb  1  1997 bmp2fnt.zip
-rw-r--r--  1 20364  106    229337 Jan 28  1997 caty100.exe
-rw-r--r--  1 20364  106     28682 Nov 14  1997 cdate.zip
-rw-r--r--  1 20364  106      6215 Jun  5  1995 czconv.arj
-rw-r--r--  1 20364  106    389541 Mar 22  1996 demofred.zip
-rw-r--r--  1 20364  106      5540 Feb  7  1995 dentry.zip
.........
Jak je na FTP serverech dobrým zvykem, i zde je textový soubor s názvy a stručným popisem jednotlivých programů, uložených především ve formě ZIP archívů. Je tedy dobrým nápadem si tento soubor stáhnout, prostudovat a podle něj si zvolit, zda a jaký program budu požadovat. Protože soubor 00_index.txt je textový, volím ASCII přenos a soubor obdržím po odeslání následujícího emailu:
open ftp.vse.cz
cd /pub/msdos/programs-from-vse/util
ascii
get 00_index.txt
quit
Odpovědí mi byl dopis, který jako přílohu obsahoval požadovaný soubor 00_index.txt. Ten jsem si z poštovního programu uložil na disk a zde je jeho část:
Directory util <Různé drobné jednoúčelové prográmky> 

NOTE: LANGuage E is English and C is Czech; s.c. means source code
                            
Filename    LANG  KB   Date   Author   Description
=====================================================================
2COL_UI.ZIP   C   72  970602  xpavp03  Uživatelské rozhraní pro tiskový program 2col + s.c.
ATC101.ZIP    C   10  950306  xbrao01  Primitivní konvertor textu (změna znaku) + s.c.
AUTILS.ZIP    C   44  960229  xbrao01  ASort, ACat, AMap, AUtil, ANewMail - pro dávkové soubory
BALLS.ZIP     C   21  960131  xkudi02  Balls 1.0, an external scrren saver for DOS
  ..... 
SYSEDC23.ZIP  C  148  980327  xster05  Editor MSDOS.SYS - aplet Ovládacích panelů viz výše 
MULTITXT.ZIP  C  483  960113  xhynr01  Prohlížeč hypermediálních aplikací pod Windows + ukázky
PASTE.ZIP     C    6  970602  xpavp03  Svislé spojování textových souborů + s.c.
PEPACZ.ZIP    C   72  970602  xpavp03  Program na převod kódování češtiny + s.c.
PEPALOG.ZIP   C    8  970602  xpavp03  Zapisuje do souboru datum a čas a počítá rozdíly + s.c.
REBTCZ10.ZIP  C   10  980327  xster05  Program podle parametrů příkazové řádky restartuje Windows či počítač a nebo vypne počítač. 
REBTEN10.ZIP  E   10  980327  xster05  According to command line restarts Windows or turns off computer
REKURZE.ZIP   E    6  950207  xfryo02  Shows nice algorithm for complete dirs scanning + s.c.
ROZVRH62.ZIP  C  343  950109  xblam02  Tvorba rozvrhu pro ZŠ,SŠ,SOU,OU
SETVAR.EXE    E    5  950421  xkudi02  DOS program, mění hodnoty klíčů v IniFilech (*.ini)
SVATKY.ZIP    C   38  970602  xpavp03  Kdo má svátek dnes a dalších sedm dní + s.c. 
TRAN20.ZIP    C   13  980216  xsrad01  Tran - inteligentní konvertor české diakritiky (8 kódů, autodetekce)
TRAYRN21.ZIP  C  171  980327  xster05  Spouští aplikace kliknutím na ikonu zařazenou v pravé části Hlavního panelu 
TWU2.ZIP      E   25  950213  xsrad01  Stores time you turn your PC on/off (TSR) and a bit more
UECHO.ZIP     C    8  970602  xpavp03  Příkaz MS-DOS rozšířeny o možnost Unixu + s.c.
VI20B.ZIP     E   23  950213  xsrad01  Basic system integrity check/restore (antivirus)
XTARK.ZIP     C   54  971218  xbehk02  Vanoční mutace Flying Tarka G

    2. Stažení programu

Nyní zbývá vybrat vhodný program a "nechat si pro něj poslat". Po přečtení seznamu mě zaujal program PEPACZ.ZIP, který je zde uložený i se zdrojovými kódy. Protože je program uložený jako ZIP archív, a je to tudíž binární soubor, je třeba jej také přenášet jako binární. Následující dopis na liberecký server tedy obsahuje tyto příkazy:
open ftp.vse.cz
cd /pub/msdos/programs-from-vse/util
binary
get PEPACZ.ZIP
quit
Ale ouha! Místo požadovaného souboru mi přišlo chybové oznámení FTPmail failure notification, že server ftp.vslib.cz pro mě nemůže získat požadovaný soubor. Následuje výpis zadaných příkazů a jejich výsledky (vypouštím uvítací obrazovky serveru ftp.vse.cz):
The job was recorded as follows:

Retry 1
Delay 956657890
Sender xkecm01@vse.cz
Site ftp.vse.cz
LoginID anonymous
Passwd xkecm01@vse.cz
Type B
Compression -
Action get
Params /pub/msdos/programs-from-vse/util/PEPACZ.ZIP

The job produced the following output:

Tue Apr 25 11:08:10 2000 B Processing job from xkecm01@vse.cz
Tue Apr 25 11:08:10 2000 B JOB: ftp.vse.cz anonymous xkecm01@vse.cz get /pub/msdos/programs-from-vse/util/PEPACZ.ZIP
220-        pub.vse.cz anonymous FTP service. This server is located at
220-                Prague University of Economics, Czech Republic
220-        Our local time is now: Tue Apr 25 12:08:10 2000
220-        Your hostname is: obelix.vslib.cz
230-
230 Guest login ok, access restrictions apply.
250 CWD command successful.
257 "/pub/msdos/programs-from-vse/util" is current directory.
200 Type set to I.
200 PORT command successful.
550 PEPACZ.ZIP: No such file or directory.
Tue Apr 25 11:08:11 2000 B Unsuccessful request
Z tohoto detailního výpisu je tedy zřejmé, že server ftp.vse.cz nemůže nalézt soubor /pub/msdos/programs-from-vse/util/PEPACZ.ZIP. Chyba je samozřejmě v tom, že jsem zadal jméno souboru velkými písmeny a systémy typu Unix  jsou "case sensitive", tzn. PEPACZ.ZIP není totéž jako pepacz.zip. Opravuji tedy zadání a odesílám svůj poslední dopis do Liberce.
open ftp.vse.cz
cd /pub/msdos/programs-from-vse/util
binary
get pepacz.zip
quit

    3. Dekódování programu

Výsledkem předchozího dopisu jsou tři nové e-maily od FTPmail V2.33, které obsahují soubor pepacz.zip zakódovaný metodou uucode a rozdělený na části o délce 64 KB. Posledním úkolem je získat z těchto dopisů nepoškozený ZIP archív obsahující požadovaný program. Nejprve musíme pospojovat jednotlivé části dopisu. Protože dopisy mají v poli Věc vyplněny údaje 1/3 pepacz.zip: data3/3 pepacz.zip: data, je jasné, v jakém pořadí budeme dopisy spojovat. Dopisy lze spojit v libovolném ASCII editoru, který do ukládaných souborů nepřidává vlastní formátovací znaky.
Dopisy spojujeme tak, že první část necháme celou a k ní přidáme druhou a třetí část, ze kterých odstraníme hlavičky dopisu. Získáváme tak jeden dopis, který obsahuje přílohu - mezi klíčovými slovy begin a end je nepřerušený řetězec kódu uucode. Z takto zakódovaného dopisu musíme dostat binární soubor - námi požadovaný ZIP archív. Je mnoho způsobů, jak dekódovat uucode. Asi nejběžnějším je použití pomocných programů uucode.exe, uudecode.exe dostupných i na školní síti. Lze také použít jiné, mnohem komfortnější utility - například i samotný program pro správu ZIP archívů WinZIP podporuje (de)kódování uucode. Při takovém způsobu dekódování bychom jednoduše odstranili hlavičky dopisu a příslušnému programu bychom předali pouze čistý kód uvozený slovy begin a end. Protože však máme soubor ve formě e-mailu (tj. s příslušnými hlavičkami), můžeme využít trochu netradiční způsob a rozkódovat soubor přímo v poštovním klientu.
Soubor (dopis) tedy přejmenujeme na dopis.cnm (cnm je přípona souborů s novou poštou) a přesuneme jej do adresáře příchozí pošty (H:\PMail). Nyní spustíme poštovní program PegasusMail for Windows a otevřeme "nový" dopis ve složce nové pošty. Vidíme, že dopis obsahuje netextový dodatek a program nám nabídne jeho uložení. Zvolíme tedy Uložit dodatek a vybereme cílový disk a adresář. Poté zavřeme poštovního klienta, spustíme program pro správu souborů a prohlídneme soubor.
Výsledný soubor je korektní archív ZIP, jehož rozbalením v příslušném programu získáme požadovaný program pro konverzi Češtiny včetně autorské dokumentace a zdrojových kódů v Pascalu.
 

Závěr:

Účelem tohoto úkolu bylo naučit se pracovat se vzdálenými FTP archívy prostřednictvím rozhraní elektronické pošty. Protože elektronická pošta je někde stále jedinou možností připojení k síti Internet, služby typu FTPmail jsou stále ještě aktuální a potřebné. Pro potřeby této úlohy jsem získal binární soubor s programem z anonymního FTP serveru VŠE a jako FTPmail rozhraní jsem používal server ftp.vslib.cz na Technické univerzitě v Liberci.

Tento dokument můžete nalézt na: http://sorry.vse.cz/~xkecm01/izi220/ftpmail.php


Stránka využívá CSS MiK's Site: Vše o VŠE(m) << Předchozí stránka
> Začátek stránky <
Počet přístupu na stránky celkem: 1 560
Poslední aktualizace stránky: 29.01.2003, v 11:50
Statistika | Struktura webu
MiK's Site © 2003 Michal Kec (MiK)
web@kecnet.cz