Techyou labs
真正的爱应该超越生命的长度,心灵的宽度,灵魂的深度
常用标签
您正在查看:标签 IP 下的文章

function getip() {
if (isset($_SERVER)) {
if (isset($_SERVER[HTTP_X_FORWARDED_FOR])) {
$realip = $_SERVER[HTTP_X_FORWARDED_FOR];
} elseif (isset($_SERVER[HTTP_CLIENT_IP])) {
$realip = $_SERVER[HTTP_CLIENT_IP];
} else {
$realip = $_SERVER[REMOTE_ADDR];
}
} else {
if (getenv(”HTTP_X_FORWARDED_FOR”)) {
$realip = getenv( “HTTP_X_FORWARDED_FOR”);
} elseif (getenv(”HTTP_CLIENT_IP”)) {
$realip = getenv(”HTTP_CLIENT_IP”);
} else {
$realip = getenv(”REMOTE_ADDR”);
}
}
return $realip;

2th:

1. function getip() {
   2. if (isset($_SERVER)) {
   3. /*在局域网通过透明代理访问外部的web服务器时,
      *在web服务器端,
      *通过header HTTP_X_FORWARDED_FOR 可以知道代理服务器的服务器名以及端口,
      */
   4. if (isset($_SERVER[HTTP_X_FORWARDED_FOR])) {
   5. $realip = $_SERVER[HTTP_X_FORWARDED_FOR];
   6. } elseif (isset($_SERVER[HTTP_CLIENT_IP])) {
   7. $realip = $_SERVER[HTTP_CLIENT_IP];
   8. } else {
   9. $realip = $_SERVER[REMOTE_ADDR];
  10. }
  11. } else {
  12. /*string getenv ( string varname )*Returns the value of the environment variable varname, or FALSE on *an error.

  13. */

  14. if (getenv(“HTTP_X_FORWARDED_FOR”)) {
  15. $realip = getenv( “HTTP_X_FORWARDED_FOR”);
  16. } elseif (getenv(“HTTP_CLIENT_IP”)) {
  17. $realip = getenv(“HTTP_CLIENT_IP”);
  18. } else {
  19. $realip = getenv(“REMOTE_ADDR”);
  20. }
  21. }
  22. return $realip;

HTTP_X_FORWARDED_FOR获取的是最真实的,“HTTP_X_FORWARDED_FOR”是HTTP协议头中的一部分,也就是说客户端可以伪造,使用时需要进行相应检测防止被利用,例如网站有封IP的功能,恶意用户可以伪造IP,使网站误封正常用户的IP。