zl程序教程

您现在的位置是:首页 >  后端

当前栏目

PHP跨平台获取服务器IP地址自定义函数分享

PHP服务器 函数 获取 分享 自定义 IP地址 跨平台
2023-06-13 09:15:38 时间

近期需要完善一个log机制,监控来自不同服务器的机器的脚本执行状况,特针对windows和Linux及web与命令行模式书写了一个函数来兼容。

写了如下一个function来,可以实现上面的需求:

复制代码代码如下:


functiongetServerAddr(){  
   //运行webapp  
   if(isset($_SERVER["SERVER_ADDR"])){  
       return$_SERVER["SERVER_ADDR"];  
   }else{//RunningCLI  
       if(stristr(PHP_OS,"WIN")){  
           // 针对windows服务器所执行的一种hacky方式   
           exec("ipconfig/all",$catch);  
           foreach($catchas$line){  
               $new_catch[]=iconv("gbk","utf-8",$line)."\n";  
           }  
           foreach($new_catchas$new_line){  
               if(preg_match(‘/IPv4地址/",$new_line)){//中文系统  
                   list($t,$ip)=explode(‘:",$new_line);  
                   $ip=trim($ip);  
                   preg_match(‘/((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))/",$ip,$match);  
                   return$match[1];  
               }  
           }  
       }else{  
           $ifconfig=shell_exec(‘/sbin/ifconfigeth0′);  
           preg_match(‘/addr:([\d\.]+)/",$ifconfig,$match);  
           return$match[1];  
       }  
   }  
}  
 
$ip=getServerAddr();  
print$ip;