function getip() {//by surfchen.org
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
if (strpos($ip, ",")) {
$ips = explode(",", $ip);
return trim($ips[0]);
}
return $ip;
}
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
if (strpos($ip, ",")) {
$ips = explode(",", $ip);
return trim($ips[0]);
}
return $ip;
}
1. <?php
2. /*
3. * Copyright (c) 2006-2008 coderhome.net
4. * All rights reserved.
5. * Support : 志凡([email protected])
6. *
7. * Version : 1.0
8. */
9. class Ip {
10. public static function get() {
11. if ($_SERVER['HTTP_CLIENT_IP'] && $_SERVER['HTTP_CLIENT_IP']!='unknown') {
12. $ip = $_SERVER['HTTP_CLIENT_IP'];
13. } elseif ($_SERVER['HTTP_X_FORWARDED_FOR'] && $_SERVER['HTTP_X_FORWARDED_FOR']!='unknown') {
14. $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
15. } else {
16. $ip = $_SERVER['REMOTE_ADDR'];
17. }
18. return $ip;
19. }
20.
21. public static function ipToInt($ip) {
22. $ips = explode('.',$ip);
23. if (count($ips)>=4) {
24. $int = $ips[0]*256*256*256+$ips[1]*256*256+$ips[2]*256+$ips[3];
25. } else {
26. throw new Exception('ip is error');
27. }
28. return $int;
29. }
30.
31. public static function isIn($startIp, $endIp, $ip) {
32. $start = Ip::ipToInt($startIp);
33. $end = Ip::ipToInt($endIp);
34. $ipInt = Ip::ipToInt($ip);
35. $result = false;
36. if ($ipInt>=$start && $ipInt<=$end) {
37. $result = true;
38. }
39. return $result;
40. }
41. }
42. ?>
用php获取客户端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获取ip的算法:
<?php
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:".$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;
?>
if($_SERVER['HTTP_CLIENT_IP'])
{
$user_ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif($_SERVER['HTTP_X_FORWARDED_FOR'])
{
$user_ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$user_ip=$_SERVER['REMOTE_ADDR'];
}
echo "ip为:".$user_ip;
[/code]
{
$user_ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif($_SERVER['HTTP_X_FORWARDED_FOR'])
{
$user_ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$user_ip=$_SERVER['REMOTE_ADDR'];
}
print_r($_SERVER);
get_real_ip()在IP为100.0.0.1 - 109.255.255.255时会撞在BUG上
echo $ipaddress;