什么意思,PHP主只要在你的服务器中执行的话,
别的即使是所谓的服务器请求你的PHP页面那它也是相对与你的服务器来说都是客户端啊!
你的意思是PHP文件还能同时从多个服务器上执行?你执行一部分我执行一部分?
$_SERVER["REMOTE_ADDR"] 就能完全满足你!
别的即使是所谓的服务器请求你的PHP页面那它也是相对与你的服务器来说都是客户端啊!
你的意思是PHP文件还能同时从多个服务器上执行?你执行一部分我执行一部分?
$_SERVER["REMOTE_ADDR"] 就能完全满足你!
所以最好还是用$_SERVER['HTTP_REFERER']判断,但是,域名可变就没办法了。
反正php.ini里面是拿不到前一叶面的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;
}
正在浏览当前页面用户的 IP 地址。
$hosts = gethostbynamel('www.example.com');
print_r($hosts);
?>
www.example.com改为a.com
$host = $matches[2];
$ip = gethostbynamel($host);
echo $ip;
$host = $matches[2];
$ip = gethostbynamel($host);
echo $ip[0];
楼上正解!
// ####################### 获取客户端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;
}
-----------------------------
支持这段代码!^_^
<?php
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
echo $hostname;
?>
$hosts = gethostbynamel('www.example.com');
print_r($hosts);
?>
1、客户机1-》服务器1,获取客户端1IP,$_SERVER['REMOTE_ADDR'];
2、服务器1-》服务器2,获取服务器1IP,$_SERVER['SERVER_ADDR'];
运行服务器的IP地址