获取本地IP地址
后端笔记 2019-06-11 17:00:26

 

PHP Code复制内容到剪贴板
  1. //获取IP地址类型(0为自动,1为REMOTE_ADDR,2为HTTP_X_FORWARDED_FOR,3为HTTP_CLIENT_IP)  
  2. $getiptype = 0;  
  3. $pagechar = 'utf-8';  
  4.   
  5. //取得IP  
  6. function egetip(){  
  7.     if(getenv('HTTP_CLIENT_IP')&&strcasecmp(getenv('HTTP_CLIENT_IP'),'unknown'))  
  8.     {  
  9.         $ip=getenv('HTTP_CLIENT_IP');  
  10.     }  
  11.     elseif(getenv('HTTP_X_FORWARDED_FOR')&&strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),'unknown'))  
  12.     {  
  13.         $ip=getenv('HTTP_X_FORWARDED_FOR');  
  14.     }  
  15.     elseif(getenv('REMOTE_ADDR')&&strcasecmp(getenv('REMOTE_ADDR'),'unknown'))  
  16.     {  
  17.         $ip=getenv('REMOTE_ADDR');  
  18.     }  
  19.     elseif(isset($_SERVER['REMOTE_ADDR'])&&$_SERVER['REMOTE_ADDR']&&strcasecmp($_SERVER['REMOTE_ADDR'],'unknown'))  
  20.     {  
  21.         $ip=$_SERVER['REMOTE_ADDR'];  
  22.     }  
  23.     if($getiptype>0)  
  24.     {  
  25.         $ip=egetipadd();  
  26.     }  
  27.     $ip=RepPostVar(preg_replace("/^([\d\.]+).*/","\\1",$ip));  
  28.     return $ip;  
  29. }  
  30.   
  31. //取得IP附加  
  32. function egetipadd(){  
  33.     if($getiptype==2)  
  34.     {  
  35.         $ip=getenv('HTTP_X_FORWARDED_FOR');  
  36.     }  
  37.     elseif($getiptype==3)  
  38.     {  
  39.         $ip=getenv('HTTP_CLIENT_IP');  
  40.     }  
  41.     else  
  42.     {  
  43.         $ip=getenv('REMOTE_ADDR');  
  44.     }  
  45.     return $ip;  
  46. }  
  47. //参数处理函数  
  48. function RepPostVar($val){  
  49.     if($val!=addslashes($val))  
  50.     {  
  51.         exit();  
  52.     }  
  53.     CkPostStrChar($val);  
  54.     $val=str_replace("%","",$val);  
  55.     $val=str_replace(" ","",$val);  
  56.     $val=str_replace("`","",$val);  
  57.     $val=str_replace("\t","",$val);  
  58.     $val=str_replace("%20","",$val);  
  59.     $val=str_replace("%27","",$val);  
  60.     $val=str_replace("*","",$val);  
  61.     $val=str_replace("'","",$val);  
  62.     $val=str_replace("\"","",$val);  
  63.     $val=str_replace("/","",$val);  
  64.     $val=str_replace(";","",$val);  
  65.     $val=str_replace("#","",$val);  
  66.     $val=str_replace("--","",$val);  
  67.     $val=RepPostStr($val,1);  
  68.     $val=addslashes($val);  
  69.     return $val;  
  70. }  
  71. //处理编码字符  
  72. function CkPostStrChar($val){  
  73.     if(substr($val,-1)=="\\")  
  74.     {  
  75.         exit();  
  76.     }  
  77. }  
  78. //处理提交字符  
  79. function RepPostStr($val,$ecms=0,$phck=0){  
  80.     if($phck==1)  
  81.     {  
  82.         CkPostStrCharYh($val);  
  83.     }  
  84.     $val=ehtmlspecialchars($val,ENT_QUOTES);  
  85.     if($ecms==0)  
  86.     {  
  87.         CkPostStrChar($val);  
  88.         $val=AddAddsData($val);  
  89.     }  
  90.     return $val;  
  91. }  
  92. //处理提交字符2  
  93. function RepPostStr2($val,$phck=0){  
  94.     if($phck==1)  
  95.     {  
  96.         CkPostStrCharYh($val);  
  97.     }  
  98.     CkPostStrChar($val);  
  99.     $val=AddAddsData($val);  
  100.     return $val;  
  101. }  
  102.   
  103. //增加adds  
  104. function AddAddsData($data){  
  105.     if(!MAGIC_QUOTES_GPC)  
  106.     {  
  107.         $data=addslashes($data);  
  108.     }  
  109.     return $data;  
  110. }  
  111.   
  112. //验证编码字符  
  113. function CkPostStrCharYh($val){  
  114.     if($val!=addslashes($val))  
  115.     {  
  116.         exit();  
  117.     }  
  118.     return $val;  
  119. }  
  120.   
  121. //htmlspecialchars处理  
  122. function ehtmlspecialchars($val,$flags=ENT_COMPAT){  
  123.     if(PHP_VERSION>='5.4.0') 
  124.     { 
  125.         if($pagechar=='utf-8') 
  126.         { 
  127.             $char='UTF-8'; 
  128.         } 
  129.         else 
  130.         { 
  131.             $char='ISO-8859-1';  
  132.         }  
  133.         $val=htmlspecialchars($val,$flags,$char);  
  134.     }  
  135.     else  
  136.     {  
  137.         $val=htmlspecialchars($val,$flags);  
  138.     }  
  139.     return $val;  
  140. }  
  141.   
  142. echo egetip();  

 

本文来自于:http://www.yoyo88.cn/note/backend/439.html

上一篇 PHPExcel
Powered by yoyo苏ICP备15045725号-1