| MotherHacker |
22.12.2017 02:02 |
PHP код:
PHP: [COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]public function[/COLOR][COLOR="#0000BB"]GetUserIp[/COLOR][COLOR="#007700"](){ if([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]UserIP[/COLOR][COLOR="#007700"]==[/COLOR][COLOR="#DD0000"]"Undefined"[/COLOR][COLOR="#007700"]){ if(isset([/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'HTTP_X_FORWARDED_FOR'[/COLOR][COLOR="#007700"]]) AND !empty([/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'HTTP_X_FORWARDED_FOR'[/COLOR][COLOR="#007700"]])) { [/COLOR][COLOR="#0000BB"]$client_ip[/COLOR][COLOR="#007700"]= ( !empty([/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'REMOTE_ADDR'[/COLOR][COLOR="#007700"]]) ) ?[/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'REMOTE_ADDR'[/COLOR][COLOR="#007700"]] : ( ( !empty([/COLOR][COLOR="#0000BB"]$_ENV[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'REMOTE_ADDR'[/COLOR][COLOR="#007700"]]) ) ?[/COLOR][COLOR="#0000BB"]$_ENV[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'REMOTE_ADDR'[/COLOR][COLOR="#007700"]] :[/COLOR][COLOR="#DD0000"]"unknown"[/COLOR][COLOR="#007700"]); [/COLOR][COLOR="#0000BB"]$entries[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]split[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'[, ]'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'HTTP_X_FORWARDED_FOR'[/COLOR][COLOR="#007700"]]);
[/COLOR][COLOR="#0000BB"]reset[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$entries[/COLOR][COLOR="#007700"]); while (list(,[/COLOR][COLOR="#0000BB"]$entry[/COLOR][COLOR="#007700"]) =[/COLOR][COLOR="#0000BB"]each[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$entries[/COLOR][COLOR="#007700"])) { [/COLOR][COLOR="#0000BB"]$entry[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]trim[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$entry[/COLOR][COLOR="#007700"]); if ([/COLOR][COLOR="#0000BB"]preg_match[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$entry[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$ip_list[/COLOR][COLOR="#007700"]) ) { [/COLOR][COLOR="#0000BB"]$private_ip[/COLOR][COLOR="#007700"]= array( [/COLOR][COLOR="#DD0000"]'/^0\./'[/COLOR][COLOR="#007700"], [/COLOR][COLOR="#DD0000"]'/^127\.0\.0\.1/'[/COLOR][COLOR="#007700"], [/COLOR][COLOR="#DD0000"]'/^192\.168\..*/'[/COLOR][COLOR="#007700"], [/COLOR][COLOR="#DD0000"]'/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/'[/COLOR][COLOR="#007700"], [/COLOR][COLOR="#DD0000"]'/^10\..*/'[/COLOR][COLOR="#007700"]); [/COLOR][COLOR="#0000BB"]$found_ip[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]preg_replace[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$private_ip[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$client_ip[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$ip_list[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]]); if ([/COLOR][COLOR="#0000BB"]$client_ip[/COLOR][COLOR="#007700"]!=[/COLOR][COLOR="#0000BB"]$found_ip[/COLOR][COLOR="#007700"]) { [/COLOR][COLOR="#0000BB"]$client_ip[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$found_ip[/COLOR][COLOR="#007700"]; break; } } } [/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]UserIP[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$client_ip[/COLOR][COLOR="#007700"]; return[/COLOR][COLOR="#0000BB"]$client_ip[/COLOR][COLOR="#007700"]; }else return ( !empty([/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'REMOTE_ADDR'[/COLOR][COLOR="#007700"]]) ) ?[/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'REMOTE_ADDR'[/COLOR][COLOR="#007700"]] : ( ( !empty([/COLOR][COLOR="#0000BB"]$_ENV[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'REMOTE_ADDR'[/COLOR][COLOR="#007700"]]) ) ?[/COLOR][COLOR="#0000BB"]$_ENV[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'REMOTE_ADDR'[/COLOR][COLOR="#007700"]] :[/COLOR][COLOR="#DD0000"]"unknown"[/COLOR][COLOR="#007700"]); }else return[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]UserIP[/COLOR][COLOR="#007700"]; }[/COLOR][/COLOR]
|