2016-02-26 104 views
0

在我的索引页上我想显示系统或客户端的IP地址。为此,我在单独的文件中编写了这个函数。在索引页面以PHP显示IP地址

这是我的功能: -

function getClientIp() { 
    $ipaddress = ''; 
    if ($_SERVER['HTTP_CLIENT_IP']) 
     $ipaddress = $_SERVER['HTTP_CLIENT_IP']; 
    else if($_SERVER['HTTP_X_FORWARDED_FOR']) 
     $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR']; 
    else if($_SERVER['HTTP_X_FORWARDED']) 
     $ipaddress = $_SERVER['HTTP_X_FORWARDED']; 
    else if($_SERVER['HTTP_FORWARDED_FOR']) 
     $ipaddress = $_SERVER['HTTP_FORWARDED_FOR']; 
    else if($_SERVER['HTTP_FORWARDED']) 
     $ipaddress = $_SERVER['HTTP_FORWARDED']; 
    else if($_SERVER['REMOTE_ADDR']) 
     $ipaddress = $_SERVER['REMOTE_ADDR']; 
    else 
     $ipaddress = 'UNKNOWN'; 
    $_SESSION['myIp'] = $ipaddress;  
} 

我想用我的索引页该功能显示的IP地址。

+1

首先从代码中删除'@'。还需要''session_start();'在你的页面上和你的索引页面上都需要'echo $ _SESSION ['myIp'];''。 –

回答

1

建议: -

删除@从你的代码中,跳过错误根本不是一个好习惯。

在你的页面(代码页和索引页)两者的顶刚过<?php

添加session_start();在索引页面,您可以通过只是在做echo $_SESSION['myIp'];

通话功能在你的代码页取值: -

function getClientIp() { 
    $ipaddress = ''; 
    if ($_SERVER['HTTP_CLIENT_IP']) 
     $ipaddress = $_SERVER['HTTP_CLIENT_IP']; 
    else if($_SERVER['HTTP_X_FORWARDED_FOR']) 
     $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR']; 
    else if($_SERVER['HTTP_X_FORWARDED']) 
     $ipaddress = $_SERVER['HTTP_X_FORWARDED']; 
    else if($_SERVER['HTTP_FORWARDED_FOR']) 
     $ipaddress = $_SERVER['HTTP_FORWARDED_FOR']; 
    else if($_SERVER['HTTP_FORWARDED']) 
     $ipaddress = $_SERVER['HTTP_FORWARDED']; 
    else if($_SERVER['REMOTE_ADDR']) 
     $ipaddress = $_SERVER['REMOTE_ADDR']; 
    else 
     $ipaddress = 'UNKNOWN'; 
    $_SESSION['myIp'] = $ipaddress;  
} 
getClientIp(); 
+0

非常感谢你,这对我有用。 –

0

如果这是你get_ip.php

session_start(); // this is required on both the pages 

function getClientIp() { 
    $ipaddress = ''; 
    if ($_SERVER['HTTP_CLIENT_IP']) 
     $ipaddress = $_SERVER['HTTP_CLIENT_IP']; 
    else if($_SERVER['HTTP_X_FORWARDED_FOR']) 
     $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR']; 
    else if($_SERVER['HTTP_X_FORWARDED']) 
     $ipaddress = $_SERVER['HTTP_X_FORWARDED']; 
    else if($_SERVER['HTTP_FORWARDED_FOR']) 
     $ipaddress = $_SERVER['HTTP_FORWARDED_FOR']; 
    else if($_SERVER['HTTP_FORWARDED']) 
     $ipaddress = $_SERVER['HTTP_FORWARDED']; 
    else if($_SERVER['REMOTE_ADDR']) 
     $ipaddress = $_SERVER['REMOTE_ADDR']; 
    else 
     $ipaddress = 'UNKNOWN'; 
    return $_SESSION['myIp'] = $ipaddress; 

} 

index.php

session_start(); // this is required on both the pages 

include("get_ip.php"); 

echo getClientIp(); 

OR

session_start(); // this is required on both the pages 

include("get_ip.php"); 

echo $_SESSION['myIp'];