mirror of
https://gh.wpcy.net/https://github.com/webguyio/dam-spam.git
synced 2026-05-25 03:03:57 +08:00
133 lines
No EOL
4.2 KiB
PHP
133 lines
No EOL
4.2 KiB
PHP
<?php
|
|
|
|
if ( !defined( 'ABSPATH' ) ) {
|
|
status_header( 404 );
|
|
exit;
|
|
}
|
|
|
|
// last updated from https://ip-ranges.amazonaws.com/ip-ranges.json on 12/9/2025
|
|
class dam_spam_check_aws extends dam_spam_module {
|
|
public $searchname = 'Amazon AWS Server Allow';
|
|
public $searchlist = array(
|
|
'Amazon AWS Server Allow',
|
|
array( '3.0.0.0', '3.255.255.255' ),
|
|
array( '13.32.0.0', '13.59.255.255' ),
|
|
array( '13.112.0.0', '13.127.255.255' ),
|
|
array( '13.200.0.0', '13.255.255.255' ),
|
|
array( '15.0.0.0', '15.255.255.255' ),
|
|
array( '16.0.0.0', '16.255.255.255' ),
|
|
array( '18.0.0.0', '18.255.255.255' ),
|
|
array( '23.20.0.0', '23.23.255.255' ),
|
|
array( '32.236.0.0', '32.237.255.255' ),
|
|
array( '35.0.0.0', '35.255.255.255' ),
|
|
array( '40.0.0.0', '40.255.255.255' ),
|
|
array( '43.193.0.0', '43.218.255.255' ),
|
|
array( '46.51.128.0', '46.51.255.255' ),
|
|
array( '47.128.0.0', '47.131.255.255' ),
|
|
array( '50.16.0.0', '50.19.255.255' ),
|
|
array( '50.112.0.0', '50.112.255.255' ),
|
|
array( '51.0.0.0', '51.255.255.255' ),
|
|
array( '52.0.0.0', '52.255.255.255' ),
|
|
array( '54.0.0.0', '54.255.255.255' ),
|
|
array( '56.0.0.0', '56.255.255.255' ),
|
|
array( '63.32.0.0', '63.35.255.255' ),
|
|
array( '64.252.64.0', '64.252.127.255' ),
|
|
array( '66.7.0.0', '66.7.31.255' ),
|
|
array( '69.107.0.0', '69.107.31.255' ),
|
|
array( '71.131.192.0', '71.131.255.255' ),
|
|
array( '76.223.0.0', '76.223.255.255' ),
|
|
array( '77.112.0.0', '77.115.255.255' ),
|
|
array( '96.0.0.0', '96.0.127.255' ),
|
|
array( '98.131.0.0', '98.131.255.255' ),
|
|
array( '99.0.0.0', '99.255.255.255' ),
|
|
array( '107.20.0.0', '107.23.255.255' ),
|
|
array( '108.175.0.0', '108.175.255.255' ),
|
|
array( '122.248.192.0', '122.248.255.255' ),
|
|
array( '136.18.0.0', '136.18.255.255' ),
|
|
array( '139.56.0.0', '139.56.63.255' ),
|
|
array( '141.231.0.0', '141.231.255.255' ),
|
|
array( '150.222.0.0', '150.222.255.255' ),
|
|
array( '150.247.0.0', '150.247.255.255' ),
|
|
array( '151.148.0.0', '151.148.255.255' ),
|
|
array( '155.146.0.0', '155.146.255.255' ),
|
|
array( '159.248.0.0', '159.248.255.255' ),
|
|
array( '161.188.0.0', '161.188.255.255' ),
|
|
array( '174.129.0.0', '174.129.255.255' ),
|
|
array( '175.41.128.0', '175.41.255.255' ),
|
|
array( '176.32.64.0', '176.32.127.255' ),
|
|
array( '176.34.0.0', '176.34.255.255' ),
|
|
array( '177.71.128.0', '177.71.255.255' ),
|
|
array( '180.163.57.0', '180.163.57.255' ),
|
|
array( '184.72.0.0', '184.73.255.255' ),
|
|
array( '184.169.128.0', '184.169.255.255' ),
|
|
array( '185.48.120.0', '185.48.121.255' ),
|
|
array( '192.31.212.0', '192.31.212.255' ),
|
|
array( '204.246.164.0', '204.246.191.255' ),
|
|
array( '205.251.192.0', '205.251.255.255' ),
|
|
array( '216.137.32.0', '216.137.63.255' ),
|
|
array( '216.182.224.0', '216.182.255.255' ),
|
|
array( '216.198.0.0', '216.198.255.255' ),
|
|
array( '216.244.0.0', '216.244.127.255' )
|
|
);
|
|
public function process( $ip, &$stats = array(), &$options = array(), &$post = array() ) {
|
|
$ip6ranges = array(
|
|
'2600:1f00::/24',
|
|
'2600:1f01::/32',
|
|
'2600:1f11::/32',
|
|
'2600:1f12::/32',
|
|
'2600:1f13::/32',
|
|
'2600:1f14::/32',
|
|
'2600:1f16::/32',
|
|
'2600:1f18::/33',
|
|
'2600:1f1c::/32',
|
|
'2600:1f1e::/32',
|
|
'2600:1f24::/32',
|
|
'2600:1f26::/32',
|
|
'2600:1f28::/32',
|
|
'2600:1f2a::/32',
|
|
'2600:1f2c::/32',
|
|
'2600:1f2e::/32',
|
|
'2600:1f30::/32',
|
|
'2600:1f32::/32',
|
|
'2600:1f34::/32',
|
|
'2600:1f36::/32',
|
|
'2600:1f38::/32',
|
|
'2600:1f3a::/32',
|
|
'2600:1f48::/32',
|
|
'2600:1f60::/32',
|
|
'2600:1f61::/32',
|
|
'2600:1f62::/32',
|
|
'2600:1f68::/32',
|
|
'2600:1f69::/32',
|
|
'2600:1f70::/32',
|
|
'2600:9000::/28'
|
|
);
|
|
$aws_found = false;
|
|
if ( strpos( $ip, '.' ) !== false ) {
|
|
$ipt = dam_spam_module::ip2numstr( $ip );
|
|
foreach ( $this->searchlist as $c ) {
|
|
if ( is_array( $c ) ) {
|
|
list( $ips, $ipe ) = $c;
|
|
$ips = dam_spam_module::ip2numstr( $ips );
|
|
$ipe = dam_spam_module::ip2numstr( $ipe );
|
|
if ( $ipt >= $ips && $ipt <= $ipe ) {
|
|
$aws_found = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
} elseif ( strpos( $ip, ':' ) !== false && strlen( $ip ) >= 9 ) {
|
|
$ip = strtolower( $ip );
|
|
foreach ( $ip6ranges as $ip6 ) {
|
|
if ( substr( $ip6, 0, 9 ) == substr( $ip, 0, 9 ) ) {
|
|
$aws_found = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if ( !$aws_found ) {
|
|
return false;
|
|
}
|
|
return $this->searchname . ': ' . $ip;
|
|
}
|
|
} |