| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- namespace App\Helpers;
- class Functions{
- public static function getIp(){
- foreach (array('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 (explode(',', $_SERVER[$key]) as $ip){
- $ip = trim($ip);
- if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false){
- return $ip;
- }
- }
- }
- }
- return request()->ip();
- }
- public static function UniqueMachineID($salt = "") {
- if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
- $temp = sys_get_temp_dir().DIRECTORY_SEPARATOR."diskpartscript.txt";
- if(!file_exists($temp) && !is_file($temp)) file_put_contents($temp, "select disk 0\ndetail disk");
- $output = shell_exec("diskpart /s ".$temp);
- $lines = explode("\n",$output);
- $result = array_filter($lines,function($line) {
- return stripos($line,"ID:")!==false;
- });
- if(count($result)>0) {
- $result = array_shift(array_values($result));
- $result = explode(":",$result);
- $result = trim(end($result));
- } else $result = $output;
- } else {
- $result = shell_exec("blkid -o value -s UUID");
- if(stripos($result,"blkid")!==false) {
- $result = $_SERVER['HTTP_HOST'];
- }
- }
- return md5($salt.md5($result));
- }
- }
|