//各種設定
//ポートスキャンのタイムアウトを設定します。
//短すぎると応答の遅いノードに対しては判定行えないことがあります。
//逆に長すぎるとレスポンスが悪くなります。
//スキャンポート数×タイムアウト秒数=ポート開閉判定処理時間
$timeout = "1";
//スキャンポートリスト
//$checkportl = array('80','81','82','83','1080','3128','8000','8080','8081','8888');
$checkportl = array('20','21','80','81','82','83','1080','2279','2395','2423','2434','2522','2556','2560','2651','2731','3128','6588','8000','8008','8080','8081','8084','8888','8989','14237','18632','21620','24335','27574','27843','50033','50050');
//判定設定
//0=標準判定
//1=強化判定
//匿名串の判定率が上がりますが
//それと同時に誤判定率が跳ね上がることがあります。
//HTTP 1.0しか受け入れないサーバーや
//HTTP 1.0でしかつなげられないクライアントが
//多いところでは使用しないことをおすすめします。
$cmode = "0";
$shost = getenv("REMOTE_HOST");
$sipaddr = getenv("REMOTE_ADDR");
$header = "串規制中";
$footer = "串規制中";
//if(eregi('.jp$',$shost) && !eregi('.gimasystem.jp$',$shost) ){
// nothing
//}
//else{
while(list(,$cport)=each($checkportl)){
// $fp = @fsockopen($shost,$cport, $errorNumber, $errorString, $timeout);
$fp = @fsockopen($sipadd,$cport, $errorNumber, $errorString, $timeout);
//echo 'shost = ' . $shost . ' sipadd = '. $sipaddr. '
';
if (!$fp){
//echo ' fsockopen failed!'. ' port ='. $cport;
}else{
//echo ' fsockopen succeed!'. ' port ='. $cport;
$porttype = "active";
fclose($fp);
break;
}
}
if($porttype=="active"){
header("Content-Type: text/html; charset=EUC-JP");
header("Last-Modified: ". gmdate("D, d M Y H:i:s"). " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("HTTP/1.0 403 Forbidden");
echo 'IP = ' . $sipaddr . ' host = ' . $shost . '
';
echo ''.$header.'PROXY規制中! ポート'.$cport.'が開いています。
- PROXY経由せずに接続できる方はPROXYを解除して接続してください。
- PROXY経由しないと接続できない方はシステム管理者にご相談ください。
- HTTP等のサーバーを立てている場合はそれを止めてください。
- パーソナルファイアウォールで当サイトからの接続を拒否してください。
'.$footer.'';
exit;}
//}
/*
$proxydeny = array('proxy','^gate','^firewall','via','squid','^route','proxy','cache','delegate','kencho','pref','^gw','^host','^dns','kepper','^mail','^www','httpd','^sh','^sv','^prx','^prex','annoy','^ns(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99)','^fw(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99)');
if(is_array($proxydeny)){
while(list(,$line)=each($proxydeny)){
if(eregi($line,$shost)) {$hosttype = "active";
break;}}}
if($hosttype=="active"){
header("Content-Type: text/html; charset=EUC-JP");
header("Last-Modified: ". gmdate("D, d M Y H:i:s"). " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("HTTP/1.0 403 Forbidden");
echo ''.$header.'PROXY規制中! 変なホストです。
'.$footer.'';
exit;}
*/
?>
define('WHITELIST', "/(\.jp)$/");
function check_blackList($page)
{
if(!$_SERVER['REMOTE_HOST']) {
$_SERVER['REMOTE_HOST'] = gethostbyaddr($_SERVER['REMOTE_ADDR']);
}
if(preg_match(WHITELIST, $_SERVER['REMOTE_HOST'])) {
return false;
}
$rev_ip = implode('.', array_reverse(explode('.', $_SERVER['REMOTE_ADDR'])));
$blacklists = array(
'niku.2ch.net',
'list.dsbl.org',
'all.rbl.jp',
'multihop.dsbl.org',
'unconfirmed.dsbl.org'
);
foreach ($blacklists as $blacklist) {
$host = $rev_ip . '.' . $blacklist;
if(gethostbyname($host) != $host) {
// $log = strftime('%y/%m/%d %H:%M:%S') . "\t" . $_SERVER['REMOTE_ADDR'] . "\t" . $_SERVER['REMOTE_HOST'] . "\t" . $page . "\t" .$blacklist. "\n";
// $fp = fopen('./' . 'spamlog/' . strftime('%y%m%d') . '.ignore.log', 'a');
// fwrite($fp, $log);
// fclose($fp);
// echo 'ProxyKII';
exit();
}
}
return false;
}
function check_spammer(){
$re_flg = 0;
$ip = getenv("REMOTE_ADDR");
if($ip == "127.0.0.1")
$ip = "$HTTP_X_FORWARDED_FOR";
if(preg_match("/^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$/", $ip, $matches)){
$q1 = $matches[1];
$q2 = $matches[2];
$q3 = $matches[3];
$q4 = $matches[4];
$ip = "$q4.$q3.$q2.$q1";
}else{
}
// check list.dsbl.org, all.rbl.jp
$i = 0;
$check_list = array(".niku.2ch.net", ".list.dsbl.org", ".all.rbl.jp");
while($i < count($check_list)){
$check = $ip . $check_list[$i];
$i ++;
$result = gethostbyname($check);
if ($result != $check) {
$re_flg = 1;
break;
} else {
}
}
return $re_flg;
}
?>
Fatal error: Call to undefined function check_blackList() in /home/i-foe/www/cml-office/archive/index.php on line 6