IpHelper.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. /**
  3. * lemocms
  4. * ============================================================================
  5. * 版权所有 2018-2027 lemocms,并保留所有权利。
  6. * 网站地址: https://www.lemocms.com
  7. * ----------------------------------------------------------------------------
  8. * 采用最新Thinkphp6实现
  9. * ============================================================================
  10. * Author: yuege
  11. * Date: 2019/9/26
  12. */
  13. namespace lemo\helper;
  14. class IpHelper
  15. {
  16. public static function is_ip($str)
  17. {
  18. $ip = explode('.', $str);
  19. for ($i = 0; $i < count($ip); $i++) {
  20. if ($ip[$i] > 255) {
  21. return false;
  22. }
  23. }
  24. return preg_match('/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/', $str);
  25. }
  26. public static function ip(){
  27. $ip='未知IP';
  28. if(!empty($_SERVER['HTTP_CLIENT_IP'])){
  29. return is_ip($_SERVER['HTTP_CLIENT_IP'])?$_SERVER['HTTP_CLIENT_IP']:$ip;
  30. }elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
  31. return is_ip($_SERVER['HTTP_X_FORWARDED_FOR'])?$_SERVER['HTTP_X_FORWARDED_FOR']:$ip;
  32. }else{
  33. return is_ip($_SERVER['REMOTE_ADDR'])?$_SERVER['REMOTE_ADDR']:$ip;
  34. }
  35. }
  36. }