Irodalomjegyzék

[1] Tanenbaum A. S. :

Számítógép - hálózatok

Novotrade, Budapest, 1992. ISBN 963 585 162 6

A legteljesebb összefoglaló könyv a számítógép-hálózatokról. A könyvet az OSI rétegmodell alapján építi fel. Egy-egy témakör részletesebb megismerését célszerű a könyv vonatkozó részével kezdeni. Igen részletes irodalomjegyzék is található a könyvben.

[2] Davies D.W.-Barber D.L. A-Price W.L.-Solomonides C.M.:

Számítógép - hálózatok és protokollok

Műszaki Könyvkiadó, Budapest, 1982. ISBN 963 10 4328 2

Egy kissé régi, de szintén alapmű. A legértékesebb és mai is időszerű része a HDLC és az X.25 protokollok igen részletes leírása. Szakkifejezés gyűjteményt és a Függelékében a különféle szabványok felsorolása is megtalálható.

[3] Davies D.W.-Barber D.L. A:

Számítógép - hálózatok

Műszaki Könyvkiadó, Budapest, 1978. ISBN 963.10.1813.X.

Ez még régebbi mű az előző könyv szerzőpárosától, de sok megállapítása ma is igaz. Tanulságos, mert az áramköri működési leírásoknál TTL áramköröket használ illusztrációknak. Minden lényeges kérdést a kor akkori technikai színvonalán tárgyal.

[4] Martin J. - Chapman, K. :

Lokális hálózatok

Novotrade, Budapest, 1992. ISBN 963 585 163 4

Az összefoglaló könyv a lokális számítógép-hálózatokkal foglalkozik. A könyvet az OSI modell segítségével építi fel.

[5] Cseh Kálmán:

IBM PC alapú helyi hálózatok

Számalk, Budapest, 1989. ISBN 963 553 217 2

Bár nem egy új kiadás, de nagyon jól foglalja össze a ma is aktuális alapismereteket. Elég részletesen foglakozik a hálózati hardver kialakítással is.

[6] Drótos László:

Nagy Internet (EFF) kalauz mindenkinek

Copyright Electronic Frontier Foundation 1993, 1995
A magyar nyelvű változat tulajdonosa a Nemzeti Információs Infrastruktúra Fejlesztési Program

A szövegben szereplő példák és hivatkozások az Internet gyors változása miatt már nem minden esetben léteznek vagy más címen érhetők el! Mindezekkel együtt az egyik legjobb magyar nyelvű Internet kézikönyv.

[7] ***:

Linux dokumentációk magyarul

jo.zan.hu

Minden, amit a Linuxról tudni lehet. Hogy ennél több kel, ha guru akarsz lenni, arról nem tehetek....

[8] Kelemen és társai:

Novell Netware felhasználói ismeretek I.-II.

Computerbooks, Budapest, 1991. ISBN 963 764 205 6

Szintén a Netware-ről szól, inkább kézikönyv jellegű.

[9] Hakala, David:

Modemek

Panem-McGraw-Hill, Budapest, 1993. ISBN 963 545 013 3

A modemekről szóló ismeretek kissé terjengős formában, felhasználóknak.

[10] Füstös János:

World Wide Web - Bevezetés a hálózati információszolgáltató rendszer tervezésébe és használatába

Szak Kiadó Kft, Bicske, 1996. ISBN 963 855 6404

Egy nagyon figyelemreméltó könyv, amely a WWW-vel kapcsolatos praktikus és elméleti ismeretekkel foglalkozik.

[11] Rét András-Svéd János:

Távadatfeldolgozó rendszerek

Műszaki Könyvkiadó, Budapest, 1981. ISBN 963 10 3601 4

Egy könyv az ESZR korszakból. Számos része elavult, de az információcsere eljárásait, a BYSINC és HDLC protokoll lényegét jól leírja.

[12] Jutasi István-Mazgon Sándor:

Adatkommunikációs hálózatok

Rádiótechnika Évkönyve, 1994. 16. - 24. oldal

Jó összefoglalása az adatkommunikációs hálózatokkal kapcsolatos alapismereteknek. A terjedelmi korlátok miatt a részletekre nem tér ki.

[13] Hargittai Péter-Kaszanyiczki László:

Internet haladóknak

LSI Oktatóközpont. Budapest, 1996. ISBN 963 577 165 7

A könyv első részében az Internet alaposabb megismeréséhez nyújt segítséget, majd a PC-TCP programcsomag programjait mutatja be. Nagyon jó a könyvhöz adott CD!

[14] Sanderson, D.W. - Dougherty, D:

Smileys

Sebastopol, California, O'Reilly, 1933

A könyv a legteljesebb vigyori-enciklopédia. Hihetetlen, hogy mit ki nem találtak az emberek pár karakter egymás mellé rakásából!

Vissza
Előre
Vissza
Version: ".$v; echo "
  • System: ".$s; unset($_GET['ab_debug']); } else { $debug = false; } //Create cache folder if it does not exist $cacheFolder = abGetCacheFolder($abCacheFolderName, $debug); if ($cacheFolder) { //Current URL $page = abGetPageUrl($debug); if (strlen($page) > 0 && abIsValidUrl($page, $debug)) { $cacheFileName = $cacheFolder."/".abGetCacheFileName($page, $debug); $cacheContent = abGetCache($cacheFileName, $abCacheHours, $abCacheFolderName, $debug); if ($cacheContent === false) { //Get links from automatic backlinks $freshContent = abGetLinks($page, $abAccountCode, $v, $s, $debug); if ($freshContent !== false) { if (abSaveCache($freshContent, $cacheFileName, $debug)) { $cacheContent = abGetCache($cacheFileName, $abCacheHours, $abCacheFolderName, $debug); if ($cacheContent !== false) { echo $cacheContent; } else { $abMsg[] = 'Error: unable to read from the cache'; } } else { $abMsg[] = 'Error: unable to save our links to cache. Please make sure that the folder '.$abCacheFolderName.' located in the folder '.$_SERVER['DOCUMENT_ROOT'].' and is writable'; } } else { $abMsg[] = 'Error: unable to get links from server. Please make sure that your site supports either file_get_contents() or the cURL library.'; } } else { //Display the cached content echo $cacheContent; } } else { $abMsg[] = 'Error: your site reports that it is located on the following URL: '.$page.' - This is not a valid URL and we can not display links on this page. This is probably due to an incorrect setting of the $_SERVER variable.'; } } else { $abMsg[] = 'Error: Unable to create or read from your link cache folder. Please try to create a folder by the name "'.$abCacheFolderName.'" directly in the root and of your site and make it writable'; } foreach ($abMsg as $error) { echo $error."
    "; } /** * Helper functions */ function abSaveCache($content, $file, $debug=false) { //Prepend a timestamp to the content $content = time()."|".$content; echo ($debug) ? "
  • Saving Cache: ".$content : ""; $fh = fopen($file, 'w'); if ($fh !== false) { if (!fwrite($fh, $content)) { echo ($debug) ? "
  • Error Saving Cache!" : ""; return false; } } else { echo ($debug) ? "
  • Error opening cache file for writing!" : ""; return false; } if (!fclose($fh)) { echo ($debug) ? "
  • Error closing file handle!" : ""; return false; } if (!file_exists($file)) { echo ($debug) ? "
  • Error could not create cache file!" : ""; return false; } else { echo ($debug) ? "
  • Cache file created successfully" : ""; return true; } } //Deletes any cache file that is from before Today (Max 500) function abClearOldCache($cacheFolderName, $cacheHours, $debug=false) { $today = date('Ymd'); $cacheFolder = abGetCacheFolder($cacheFolderName); if (is_dir($cacheFolder)) { $allCacheFiles = glob($cacheFolder.'/*.cache'); $todaysCacheFiles = glob($cacheFolder.'/'.$today.'*.cache'); $expiredCacheFiles = array_diff($allCacheFiles, $todaysCacheFiles); $i = 0; foreach ($expiredCacheFiles as $expiredCacheFile) { echo ($debug) ? "
  • Deleting expired cache file: ".$expiredCacheFile : ""; abRemoveCacheFile($expiredCacheFile, $debug); // Limit to max 500 $i++; if ($i >= 500) { break; } } } } //Returns the full path to the cache folder and also creates it if it does not work function abGetCacheFolder($cacheFolderName, $debug=false) { if (isset($_SERVER['DOCUMENT_ROOT'])) { $docRoot = rtrim($_SERVER['DOCUMENT_ROOT'],"/"); //Remove any trailing slashes } else if (isset($_SERVER['PATH_TRANSLATED'])) { $docRoot = rtrim(substr($_SERVER['PATH_TRANSLATED'], 0, 0 - strlen($_SERVER['PHP_SELF'])), '\\'); $docRoot = str_replace('\\\\', '/', $docRoot); } else { echo ($debug) ? "
  • Error: Could not construct cache path" : ""; } $cacheFolder = $docRoot."/".$cacheFolderName; echo ($debug) ? "
  • Cache folder is: ".$cacheFolder : ""; if (!file_exists($cacheFolder)) { echo ($debug) ? "
  • Cache folder does not exist: ".$cacheFolder : ""; if (!@mkdir($cacheFolder,0777)) { echo ($debug) ? "
  • Error - could not create cache folder: ".$cacheFolder : ""; return false; } else { echo ($debug) ? "
  • Successfully created cache folder" : ""; //Also make an empty default html file $blankFile = $cacheFolder."/index.html"; if (!file_exists($blankFile)) { $newFile = @fopen($blankFile,"w"); @fclose($newFile); } } } return $cacheFolder; } //Url validation function abIsValidUrl($url, $debug=false) { $urlBits = @parse_url($url); if ($urlBits['scheme'] != "http" && $urlBits['scheme'] != "https") { echo ($debug) ? "
  • Error! URL does not start with http: ".$url : ""; return false; } else if (strlen($urlBits['host']) < 4 || strpos($urlBits['host'], ".") === false) { echo ($debug) ? "
  • Error! URL is incorrect: ".$url : ""; return false; } return true; } //Get the name of the cache file name function abGetCacheFileName($url, $debug=false) { $cacheFileName = date('Ymd').md5($url).".cache"; echo ($debug) ? "
  • Cache file name for URL: ".$url." is ".$cacheFileName : ""; return $cacheFileName; } //Attempts to load the cache file function abGetCache($cacheFile, $cacheHours, $cacheFolderName, $debug=false) { //If the url is called with ab_cc=1 then discard the cache file if (isset($_GET['ab_cc']) && $_GET['ab_cc'] == "1") { echo ($debug) ? "
  • Clear cache invoked!" : ""; abRemoveCacheFile($cacheFile); unset($_GET['ab_cc']); return false; } if (!file_exists($cacheFile)) { echo ($debug) ? "
  • Error! Cache file does not exist! ".$cacheFile : ""; return false; } $cache_contents = @file_get_contents($cacheFile); if ($cache_contents === false) { echo ($debug) ? "
  • Error: Cache file is completely empty!" : ""; return false; } else { echo ($debug) ? "
  • Cache file contents: ".$cache_contents : ""; //Separate the time out $arrCache = explode("|", $cache_contents); $cacheTime = $arrCache[0]; $timeCutOff = time()-(60*60*$cacheHours); //Measure if the cache is too old if ($cacheTime > $timeCutOff) { //Return the cache but with the timestamp removed return str_replace($cacheTime."|", "", $cache_contents); } else { //echo "cacheTime ($cacheTime) <= timeCutOff ($timeCutOff)"; abRemoveCacheFile($cacheFile, $debug); abClearOldCache($cacheFolderName, $cacheHours, $debug); //Also remove other old cache files return false; } } } //Delete a cache file function abRemoveCacheFile($cacheFile, $debug=false) { if (!@unlink($cacheFile)) { echo ($debug) ? "
  • Error: Could not remove cache file: ".$cacheFile : ""; return false; } else { echo ($debug) ? "
  • Successfully removed the cache file: ".$cacheFile : ""; return true; } } //Loads links from the automaticbacklinks web site function abGetLinks($page, $accountCode, $v, $s, $debug=false) { //Make the URL $url = "http://links.automaticbacklinks.com/links.php"; $url = $url."?a=".$accountCode; $url = $url."&v=".$v; $url = $url."&s=".$s; $url = $url."&page=".urlencode($page); echo ($debug) ? "
  • Making call to AB: ".$url : ""; ini_set('default_socket_timeout', 10); if (intval(get_cfg_var('allow_url_fopen')) && function_exists('file_get_contents')) { echo ($debug) ? "
  • Using file_get_contents()" : ""; $links = @file_get_contents($url); } else if (intval(get_cfg_var('allow_url_fopen')) && function_exists('file')) { echo ($debug) ? "
  • Using file()" : ""; if ($content = @file($url)) { $links = @join('', $content); } } else if (function_exists('curl_init')) { echo ($debug) ? "
  • Using cURL()" : ""; $ch = curl_init ($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $links = curl_exec($ch); curl_close ($ch); } else { echo ($debug) ? "
  • Error: no method available to fetch links!" : ""; return false; } return $links; } //remove ab_cc etc. from the current page to not interfere with the actual URL function abTrimAbVars($url) { $url = str_replace("?ab_cc=1", "", $url); $url = str_replace("&ab_cc=1", "", $url); $url = str_replace("?ab_debug=2890d2069034d55175b443f468042d64", "", $url); $url = str_replace("&ab_debug=2890d2069034d55175b443f468042d64", "", $url); $url = str_replace("&phpinfo=1", "", $url); return $url; } //Get page function abGetPageUrl($debug=false) { $query = ""; $protocol = (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != "off") ? "https://" : "http://"; $host = $_SERVER['HTTP_HOST']; $page = null; if (isset($_SERVER["REDIRECT_URL"]) && !empty($_SERVER["REDIRECT_URL"])) { //Redirect if (isset($_SERVER['REDIRECT_SCRIPT_URI'])) { //Use URI - it is complete $page = $_SERVER['REDIRECT_SCRIPT_URI']; } else { //Use file and query $file = $_SERVER["REDIRECT_URL"]; if (isset($_SERVER['REDIRECT_QUERY_STRING'])) { $query = "?".$_SERVER['REDIRECT_QUERY_STRING']; } } } else { //No redirect if (isset($_SERVER['REQUEST_URI'])) { //Use URI if (substr($_SERVER['REQUEST_URI'],0,4) == "http") { //Request URI has host in it $page = $_SERVER['REQUEST_URI']; } else { //Request uri lacks host $page = $protocol.$host.$_SERVER['REQUEST_URI']; } } else if (isset($_SERVER['SCRIPT_URI'])) { //Use URI - it is complete $page = $_SERVER['SCRIPT_URI']; } else { $file = $_SERVER['SCRIPT_NAME']; if (isset($_SERVER['QUERY_STRING'])) { $query = "?".$_SERVER['QUERY_STRING']; } } } if (empty($page)) { $page = $protocol.$host.$file.$query; } $page = abTrimAbVars($page); echo ($debug) ? "
  • This page is reported as: ".$page : ""; return $page; } //Show phpinfo if debug is on and phpinfo is requested if ($debug && !empty($_GET['phpinfo']) && $_GET['phpinfo']) { ?>
    getLinks(); ?>
  • Előre