PHP获取访客来访域名及访客ip教程 - 黑冰技术站

PHP获取访客来访域名及访客ip教程

说明

本站数据丢失后,只保留了10月26号的数据,导致站长写的访客来访域名获取函数以及访客ip获取函数丢失,今天又调试了一个小时,才总算把这个函数搞出来。大体上,都来源于网络。比如网上的教程大多是来访页面查找,有很多不足的地方。站长今天把这部分代码发出来,理论上支持所有php程序,也就是可以用于typecho获取访客来访域名,也可以获取访客ip;此外,也支持wordpress等其他程序。

function.php

编辑你的function.php,将下面代码添加到你第二行或者结尾:第一个<?php后面一行,不同主题可能略有区别,不懂再评论询问吧。

//访客ip
function get_ip(){
    //判断服务器是否允许$_SERVER
    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{
        //不允许就使用getenv获取  
        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;
}
//来访域名
function domain(){
$url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL
$str = str_replace("https://","",$url); //去掉https://
$str = str_replace("http://","",$str); //去掉http://
$str = str_replace("www.","",$str); //去掉www.
$strdomain = explode("/",$str);  // 以“/”分开成数组
$domain = $strdomain[0];//取第一个“/”以前的字符
if (empty($domain)){
return "欢迎您直接访问本站的网友,大佬记住域名了么";
}
else if($domain == 'black1ce.com'){
return "欢迎您访问本站其他页面,多谢您的支持";
}
else {
return "欢迎来自 $domain 的网友,大量教程向您袭来";
}
}

调用方式如下,将如下代码放置到你想显示的位置即可

<?php echo get_ip(); ?>
<?php echo domain(); ?>

后续

关于来访域名方面,去除了httpshttpwww,获取了第一个/前的字符,这样显示结果就是baidu.com之类。此外,增加了来访页面为空以及二次点击的判断。
注:本站只提供基本用法,具体想怎么显示,自己写吧。
PHP获取访客来访域名及访客ip教程
PHP获取访客来访域名及访客ip教程
PHP获取访客来访域名及访客ip教程
PHP获取访客来访域名及访客ip教程

给文章评分:1分(2)2分(1)3分(0)4分(0)5分(2)
5 票; 总得分 14; 平均分 2.8
Tags:代码访客
上一篇
打赏
下一篇

添加新评论