function getIP()
{
$realip;
if (isset($_SERVER)){
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} else if (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");
} else if (getenv("HTTP_CLIENT_IP")) {
$realip = getenv("HTTP_CLIENT_IP");
} else {
$realip = getenv("REMOTE_ADDR");
}
} return $realip;
}
我用这个获取不到正确的ip 为什么?谁能帮我改进一下
{
$realip;
if (isset($_SERVER)){
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} else if (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");
} else if (getenv("HTTP_CLIENT_IP")) {
$realip = getenv("HTTP_CLIENT_IP");
} else {
$realip = getenv("REMOTE_ADDR");
}
} return $realip;
}
我用这个获取不到正确的ip 为什么?谁能帮我改进一下
解决方案 »
- PHP投票程序 问题
- 高手 指教 真的很郁闷
- 求destoon二次开发的学习资料
- 一个简单shell,不按套路来,谁帮看一下
- php excelreader 读取大量数据的时候$data->sheets返回array(0) { } 小弟求解啊 读取几百行就没问题 求解求解 在线等
- phpmailer的问题
- vtigercrm 安装错误: Module name is missing. Please check the module name.
- android要做附近商家显示,显示多少米范围内商家,php数据库怎么设计坐标的
- apache 启动不了 与servername填写错误有关
- 关于phpmyadmin的问题
- $str="afasfdas:2:dfasdfasdf:1:afasdfasfasfdasdf";这个正则怎么弄
- window环境,mysql偶尔连不上
http://developer.51cto.com/art/200911/164514.htm
$m_ip=$_SERVER['HTTP_CLIENT_IP'];
} else if($_SERVER['HTTP_X_FORWARDED_FOR']){
$m_ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
} else{
$m_ip=$_SERVER['REMOTE_ADDR'];
}再不正确,应该是你的IP不正确了……
ppp 适配器 宽带连接:
连接特定的dns 后缀...........:
ipv4地址....................:60.161.156.69这个ip,这个ip是真实的吗?什么样的ip才是真实的呀?我有些不懂了?谁能给我解释一下吗?
这实际上接入到你当地电信(网通、联通)供应商的提供互联网服务的局域网中
外网的服务器看到的ip是这个局域网的出口ip
function get_client_ip(){
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
return($ip);
}
试下这个获取ip的方法看看。
echo $_SERVER['HTTP_X_FORWARDED_FOR'], '<br>';
echo $_SERVER['HTTP_CLIENT_IP'], '<br>';
echo $_SERVER['REMOTE_ADDR'], '<br>';骗你一下$url = 'http://localhost/ip.php';$ip = array(
"X-FORWARDED-FOR:888.888.888.888",
"CLIENT-IP:abc.123.456.789",
"REMOTE_ADDR:222.222.333.444",
);$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $ip);//构造IP
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
888.888.888.888
abc.123.456.789
127.0.0.1 这个是真的可见楼上得到的 ip 有自欺欺人之嫌疑