本文给大家汇总介绍了6种php获取IP的方法,有简单有复杂,大家根据自己的项目需求,自由选择吧。
代码一:
- function getip() {
- static $ip = '';
- $ip = $_SERVER['REMOTE_ADDR'];
- if(isset($_SERVER['HTTP_CDN_SRC_IP'])) {
- $ip = $_SERVER['HTTP_CDN_SRC_IP'];
- } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}/.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
- $ip = $_SERVER['HTTP_CLIENT_IP'];
- } elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all('#/d{1,3}/./d{1,3}/./d{1,3}/./d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
- foreach ($matches[0] AS $xip) {
- if (!preg_match('#^(10|172/.16|192/.168)/.#', $xip)) {
- $ip = $xip;
- break;
- }
- }
- }
- return $ip;
- }
代码二:
- <?php
- error_reporting (E_ERROR | E_WARNING | E_PARSE);
- if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){
- $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
- }
- elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){
- $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
- }
- elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){
- $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
- }
- elseif (getenv("HTTP_X_FORWARDED_FOR")){
- $ip = getenv("HTTP_X_FORWARDED_FOR");
- }
- elseif (getenv("HTTP_CLIENT_IP")){
- $ip = getenv("HTTP_CLIENT_IP");
- }
- elseif (getenv("REMOTE_ADDR")){
- $ip = getenv("REMOTE_ADDR");
- }
- else{
- $ip = "Unknown";
- }
- echo $ip;
- ?>
方法三:
- <?php
- $iipp = $_SERVER["REMOTE_ADDR"];
- echo $iipp ;
- ?>
方法四:
- <?php
- $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
- $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
- echo $user_IP
- ?>
方法五:
- <?php
- function get_real_ip()
- {
- $ip=false;
- if(!empty($_SERVER["HTTP_CLIENT_IP"])){
- $ip = $_SERVER["HTTP_CLIENT_IP"];
- }
- if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
- $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
- if($ip){
- array_unshift($ips, $ip); $ip = FALSE;
- }
- for($i = 0; $i < count($ips); $i++){
- if (!eregi ("^(10|172/.16|192/.168)/.", $ips[$i])){
- $ip = $ips[$i];
- break;
- }
- }
- }
- return($ip ? $ip : $_SERVER['REMOTE_ADDR']);
- }
- echo get_real_ip();
- ?>
方法六:
- <?php
- if(getenv('HTTP_CLIENT_IP')){
- $onlineip = getenv('HTTP_CLIENT_IP');
- }
- elseif(getenv('HTTP_X_FORWARDED_FOR')){
- $onlineip = getenv('HTTP_X_FORWARDED_FOR');
- }
- elseif(getenv('REMOTE_ADDR')){
- $onlineip = getenv('REMOTE_ADDR');
- }
- else{
- $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
- }
- echo $onlineip;
- ?>
新闻热点
疑难解答