PHP获取客户端和服务器端IP

   

客户端IP相关的变量
1. $_SERVER[‘REMOTE_ADDR‘]; 客户端IP,有可能是用户的IP,也有可能是代理的IP。

2. $_SERVER[‘HTTP_CLIENT_IP‘]; 代理端的IP,可能存在,可伪造。

3. $_SERVER[‘HTTP_X_FORWARDED_FOR‘]; 用户是在哪个IP使用的代理,可能存在,可以伪造。

服务器端IP相关的变量
1.
$_SERVER["SERVER_NAME"],需要使用函数gethostbyname()获得。这个变量无论在服务器端还是客户端均能正确显示。

2.
$_SERVER["SERVER_ADDR"],在服务器端测试:127.0.0.1(这个与httpd.conf中BindAddress的设置值相关)。在客户端测试结果正确。

类如下:

  1. class getIP{
  2. function clientIP(){
  3. $cIP = getenv(‘REMOTE_ADDR‘);
  4. $cIP1 = getenv(‘HTTP_X_FORWARDED_FOR‘);
  5. $cIP2 = getenv(‘HTTP_CLIENT_IP‘);
  6. $cIP1 ? $cIP = $cIP1 : null;
  7. $cIP2 ? $cIP = $cIP2 : null;
  8. return $cIP;
  9. }
  10. function serverIP(){
  11. return gethostbyname($_SERVER["SERVER_NAME"]);
  12. }
  13. }
  14. $getIP  = new getIP();
  15. $clientIp = getIP::clientIP();
  16. $serverIp = getIP::serverIP();
  17. echo ‘Client IP is ‘,$clientIp,‘<br />‘;
  18. echo ‘Server IP is ‘,$serverIp,‘<br />‘;
时间: 2024-10-01 23:35:58

PHP获取客户端和服务器端IP的相关文章

通过HttpservletRequest对象获取客户端的真实IP地址

这篇文章主要介绍了Java中使用HttpRequest获取用户真实IP地址,使用本文方法可以避免Apache.Squid.nginx等反向代理软件导致的非真实IP地址,需要的朋友可以参考下 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid,nginx等反向代理软件就不能获取到客户端的真实IP地址了. 如果使用了反向代理软件,将http://192.168.1.110:2046/ 的UR

ASP.NET获取客户端、服务器端的信息

ASP.NET获取客户端.服务器端基础信息 1. 在ASP.NET中专用属性: 获取服务器电脑名:Page.Server.ManchineName 获取用户信息:Page.User 获取客户端电脑名:Page.Request.UserHostName 获取客户端电脑IP:Page.Request.UserHostAddress 2. 在网络编程中的通用方法: 获取当前电脑名:static System.Net.Dns.GetHostName() 根据电脑名取出全部IP地址:static Syst

ASP.NET获取客户端、服务器端基础信息

1. 在ASP.NET中专用属性: 获取服务器电脑名:Page.Server.ManchineName 获取用户信息:Page.User 获取客户端电脑名:Page.Request.UserHostName 获取客户端电脑IP:Page.Request.UserHostAddress 2. 在网络编程中的通用方法: 获取当前电脑名:static System.Net.Dns.GetHostName() 根据电脑名取出全部IP地址:static System.Net.Dns.Resolve(电脑名

获取客户端使用的ip

一般使用jsp的时候大多数时间都可以使用request.getRemoteAddr() 来获取ip,但是这个前提是未经过反向代理等操作的原始地址,所以,需要在反向代理等操作之后还要获取客户端的ip变得困难重重,这里给大家个方法,仅供参考 1 //获取客户端真实注册地址 2 public String getRemoteHost(HttpServletRequest request){ 3 String ip = request.getHeader("x-forwarded-for");

PHP获取客户端的真实IP

REMOTE_ADDR只能获取访问者本地连接中设置的IP,如中南民族大学校园网中自己设置的10.X.XXX.XXX系列IP,而这个函数获取的是局域网网关出口的IP地址, 如果访问者使用代理服务器,将不获取代理服务器的IP,而是获取访问者网关的真实IP.如果将这个函数应用到限IP访问的网页中,别人即使通过限IP访问段中的代理服务器,也不能访问该页面. // 定义一个函数getIP() function getIP() { global $ip; if (getenv("HTTP_CLIENT_IP

获取客户端的真实IP

/** * 获取真实IP地址 * <p>使用getRealIP代替该方法</p> * @param request req * @return ip */ public static String getClinetIpByReq(HttpServletRequest request) { // 获取客户端ip地址 String clientIp = request.getHeader("x-forwarded-for"); if (clientIp == nu

【转】C#获取客户端及服务器端主机信息及其获取IP地址

原文发布时间为:2009-10-28 -- 来源于本人的百度文章 [由搬家工具导入] 小结: 1、REMOTE_ADDR 不可被修改,但是可能会获得代理服务器的IP,而不是实际客户端的IP。 2、通过 HTTP_VIA、HTTP_X_FORWARDED_FOR 我们可以获得代理服务器所代理的信息,但是这依靠代理服务器的支持。另外,这两个值可以被修改。我们通过它获得的信息可能是不真实的。另,HTTP_X_FORWARDED_FOR 的信息可能是一个集合,不含 REMOTE_ADDR 中的代理服务器

获取客户端访问的ip地址

function real_ip() { static $realip = NULL; if ($realip !== NULL) { return $realip; } if (isset($_SERVER)) { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); /* 取X-Forwarded-For中第一个非unknown的有效IP字符串

java 获取客户端的真实ip

直接上代码了: String ip = null; if (request.getHeader("X-Real-IP") == null) { ip = request.getRemoteHost(); } else { ip = request.getHeader("X-Real-IP"); }