-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunction.is_secured_request.php
84 lines (57 loc) · 1.45 KB
/
function.is_secured_request.php
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
<?php
/**
* Smarty plugin
* @package Smarty
* @subpackage plugins
*/
/**
* smarty_function_is_secured_request()
*
* @param mixed $params
* @param mixed $smarty
* @return
*/
/*
# Example
1.
````
{is_secured_request assign="is_secured_request_status"}
{if $is_secured_request_status}
{* your code *}
{/if}
````
2.
````
{is_secured_request ip = "127.0.0.1" agent = "google" assign="is_secured_request_status"}
{if $is_secured_request_status}
{* your code *}
{/if}
*/
function smarty_function_is_secured_request($params, &$smarty) {
function is_bot_ip($ip) {
$is_search_bot_ip=false;
$hostname = gethostbyaddr($ip); //"crawl-66-249-66-1.googlebot.com"
if (preg_match('/\.googlebot|google\.com$/i', $hostname)) {
$is_search_bot_ip=true;
}
if (preg_match('/\.yandexbot|yandex\.com$/i', $hostname)) {
$is_search_bot_ip=true;
}
return $is_search_bot_ip;
}
if(is_null($params['ip'])){
$ip=$_SERVER['REMOTE_ADDR'];
}
if(is_null($params['agent'])){
$agent=$_SERVER['HTTP_USER_AGENT'];
}
$is_bot_request=false;
if (strpos($agent, 'Google')!==false || is_bot_ip($ip) || strpos($agent, 'Yandex')!==false) {
$is_bot_request=true;
}
if (!empty($params['assign'])) {
$smarty->assign($params['assign'],$is_bot_request);
} else {
return $is_bot_request;
}
}