获取请求客户端IP
2019獨角獸企業重金招聘Python工程師標準>>>
/*** 獲取請求客戶端IP* @return ip*/public static function httpIp() {if (getenv ( 'SERVER_SOFTWARE' ) == 'nginx') {if (getenv ( 'REMOTE_ADDR' ) && strcasecmp ( getenv ( 'REMOTE_ADDR' ), 'unknown' )) {$ip = getenv ( 'REMOTE_ADDR' );} elseif (getenv ( 'HTTP_X_FORWARDED_FOR' ) && strcasecmp ( getenv ( 'HTTP_X_FORWARDED_FOR' ), 'unknown' )) {$ip = getenv ( 'HTTP_X_FORWARDED_FOR' );} elseif (isset ( $_SERVER ['REMOTE_ADDR'] ) && $_SERVER ['REMOTE_ADDR'] && strcasecmp ( $_SERVER ['REMOTE_ADDR'], 'unknown' )) {$ip = $_SERVER ['REMOTE_ADDR'];} elseif (getenv ( 'HTTP_CLIENT_IP' ) && strcasecmp ( getenv ( 'HTTP_CLIENT_IP' ), 'unknown' )) {$ip = getenv ( 'HTTP_CLIENT_IP' );} else {$ip = '127.0.0.1';}} else {if (getenv ( 'HTTP_X_FORWARDED_FOR' ) && strcasecmp ( getenv ( 'HTTP_X_FORWARDED_FOR' ), 'unknown' )) {$ip = getenv ( 'HTTP_X_FORWARDED_FOR' );} elseif (getenv ( 'REMOTE_ADDR' ) && strcasecmp ( getenv ( 'REMOTE_ADDR' ), 'unknown' )) {$ip = getenv ( 'REMOTE_ADDR' );} elseif (isset ( $_SERVER ['REMOTE_ADDR'] ) && $_SERVER ['REMOTE_ADDR'] && strcasecmp ( $_SERVER ['REMOTE_ADDR'], 'unknown' )) {$ip = $_SERVER ['REMOTE_ADDR'];} elseif (getenv ( 'HTTP_CLIENT_IP' ) && strcasecmp ( getenv ( 'HTTP_CLIENT_IP' ), 'unknown' )) {$ip = getenv ( 'HTTP_CLIENT_IP' );} else {$ip = '127.0.0.1';}}preg_match ( "/[\d\.]{7,15}/", $ip, $temp );$ip = $temp [0] ? $temp [0] : 'unknown';unset ( $temp );if (isset ( $_SERVER ["HTTP_CDN_SRC_IP"] )) {$ip = $_SERVER ["HTTP_CDN_SRC_IP"];}return $ip;}?
轉載于:https://my.oschina.net/zhiqiangwang/blog/1557107
總結
- 上一篇: 前端工程师的知识体系
- 下一篇: 与VS集成的若干种代码生成解决方案[博文