加入收藏 | 设为首页 | 会员中心 | 我要投稿 江门站长网 (https://www.0750zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

网站外链通过本站域名跳转访问并记录跳转链接来源时间IP的办法

发布时间:2022-02-11 10:33:41 所属栏目:经验 来源:互联网
导读:这篇文章主要为大家详细介绍了网站外链通过本站域名跳转访问并记录跳转链接来源时间IP的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。 前面一文361源码给大家讲了《DEDE发布文章时自动替换文章中外链》的方法
  这篇文章主要为大家详细介绍了网站外链通过本站域名跳转访问并记录跳转链接来源时间IP的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。
  前面一文361源码给大家讲了《DEDE发布文章时自动替换文章中外链》的方法,其中我们就是针对的文章外联的处理办法。对于经常在自己网站发布外链链接的站长,经常为了避免权重流失会设置成外链通过本站的一个接口文件跳转访问,但是访客访问了哪些域名,这里就没法记录,因此我们提供这份源代码,既可以跳转访问,又可以记录被访问的网址
 
  代码一:记录被访问的目标URL信息
 
  <?$url = $_GET['url'];$file = "url.txt";$handle =fopen($file,'a'); fwrite($handle,"/r/n"); fwrite($handle,"URL:");fwrite($handle,"$url"); fclose($handele);header("location: $url");?>
  将以上命名为url.php或者你自己喜欢的文件名。然后外链通过这种方式访问http://www.cuoxin.com/url.php?url=www.baidu.com   
 
  然后你的网站根目录下就会生成一个url.txt的文件,里面记录了所有被访问过的外链链接,按顺序排列
 
  当然为了服务器性能,是不建议继续往这个跳转功能里面加参数的,但是有时候为了记录更多信息,比如访客的IP,访问时间,还需要继续往下添加内容,如下面代码:
 
  代码二:记录被访问的目标URL信息、访客真实IP、访问时间
 
  <?function get_real_ip(){if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')){$ip = getenv('HTTP_CLIENT_IP');}elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')){$ip = getenv('HTTP_X_FORWARDED_FOR');}elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')){$ip = getenv('REMOTE_ADDR');}elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')){$ip = $_SERVER['REMOTE_ADDR'];}return preg_match("/[/d/.]{7,15}/", $ip, $matches) ? $matches[0] : false;}$url = $_GET['url'];$date = date('Y-m-d H:i:s');$file = "url.txt";$ip = get_real_ip();$handle =fopen($file,'a'); fwrite($handle,"/r/n"); fwrite($handle,"URL:");fwrite($handle,"$url" . ","); fwrite($handle,"DATE:");fwrite($handle,"$date" . ","); fwrite($handle,"IP:");fwrite($handle,"$ip"); fclose($handele);header("location: $url");?>
  这里定义了一个function方法,用于获取访客的真实IP,这里会对挂代理的情况进行判断,直到判断出真实IP,具体原理看这里
 
  一般我们是不建议在跳转的PHP放这么多东西,会影响效率
 
  代码三:记录被访问的目标URL信息、访客IP(精简代码,可能是代理IP)、访问时间
 
  如果不考虑访客使用代理的情况,那可以使用这个代码
 
  <?$url = $_GET['url'];$date = date('Y-m-d H:i:s');$file = "url.txt";$ip = $_SERVER['REMOTE_ADDR'];$handle =fopen($file,'a'); fwrite($handle,"/r/n"); fwrite($handle,"URL:");fwrite($handle,"$url" . ","); fwrite($handle,"DATE:");fwrite($handle,"$date" . ","); fwrite($handle,"IP:");fwrite($handle,"$ip"); fclose($handele);header("location: $url");?>
  代码四:记录被访问的目标URL信息、访客IP(精简代码,可能是代理IP)、来源页面、访问时间
 
  <?$url = $_GET['url'];$referer = $_SERVER['HTTP_REFERER'];$date = date('Y-m-d H:i:s');$file = "url.txt";$ip = $_SERVER['REMOTE_ADDR'];$handle =fopen($file,'a'); fwrite($handle,"/r/n"); fwrite($handle,"URL:");fwrite($handle,"$url" . ",  "); fwrite($handle,"ref:");fwrite($handle,"$referer" . ",  "); fwrite($handle,"DATE:");fwrite($handle,"$date" . ",  "); fwrite($handle,"IP:");fwrite($handle,"$ip"); fclose($handele);header("location: $url");?>
  代码五:记录被访问的目标URL信息、访客IP(精简代码,可能是代理IP)、来源页面、访问时间,并防止被人站外调用
 
  这样制作的跳转文件,谁拿了都能拿去套着用,比如现在有人经常会在QQ群发违法链接,QQ会提示风险,但是如果对方套上你的这个链接再去发就不会有这个提示,这样虽然你能通过记录查到有人用这种方式在利用你的跳转链接,但是你也没办法,这里再提供一个办法。
 
  就是在跳转之前,先判断一次点击的来路,如果来路是来自你的域名,那就允许跳转,否则就终止,通过QQ直接发链接,是读取不到来路的,因此就能防止这种被利用的情况发生。
 
  <?$url = $_GET['url'];$fromurl="http://www.cuoxin.com/"; //定义一个返回网址$referer = $_SERVER['HTTP_REFERER'];$arr2 = parse_url($referer);$host2 = $arr2['host'];if(strpos($host2,'cuoxin.com') == false) //域名中没包括cuoxin.com字眼的话,就执行下面步骤{header("Location:".$fromurl);//执行跳转到这个网址exit;//结束}$date = date('Y-m-d H:i:s');$file = "url.txt";$ip = $_SERVER['REMOTE_ADDR'];$handle =fopen($file,'a'); fwrite($handle,"/r/n"); fwrite($handle,"URL:");fwrite($handle,"$url" . ","); fwrite($handle,"ref:");fwrite($handle,"$referer" . ","); fwrite($handle,"DATE:");fwrite($handle,"$date" . ","); fwrite($handle,"IP:");fwrite($handle,"$ip"); fclose($handele);header("location: $url");?>
  这里将来路URL读取出来,然后取出URL中的域名,再判断域名中有没有cuoxin.com这个词,没有的话,就跳转到www.cuoxin.com,有的话,就继续往下执行跳转代码。
 
  通过这样设置,这个链接就只能通过你网站中的页面中点击去访问,直接贴到浏览器,或者通过QQ,微信之类的窗口点击访问就会被跳转到你的网站首页去
 
  代码六:可接收BASE64加密过的链接信息并解码访问,然后记录被访问的目标URL信息、访客IP(精简代码,可能是代理IP)、来源页面、访问时间,并防止被人站外调用
 
  有些淘客类网站并不希望页面上显示的链接包括淘宝的域名信息,因此会通过PHP代码对页面中非本站的链接进行BASE64加密,然后再跳转访问,这个时候我们的url.php接受到的就是类似aHR0cHM6Ly9zLmNsaWNrLnRhb2Jhby5jb20vZXdCc1BZdw== 这样的URL信息,是无法直接访问的,因此需要再做一重解码
 
  <?$url = $_GET['url'];if(strpos($url,'.') == false) //域名中没包括点号就判断未被base64加密过,进行解码{$url = base64_decode($url);}$fromurl="https://www.cuoxin.com/"; //定义一个返回网址$referer = $_SERVER['HTTP_REFERER'];$arr2 = parse_url($referer);$host2 = $arr2['host'];if(strpos($host2,'cuoxin.com') == false) //域名中没包括cuoxin.com字眼的话,就执行下面步骤{header("Location:".$fromurl);//执行跳转到这个网址exit;//结束}$date = date('Y-m-d H:i:s');$file = "url.txt";$ip = $_SERVER['REMOTE_ADDR'];$handle =fopen($file,'a'); fwrite($handle,"/r/n"); fwrite($handle,"URL:");fwrite($handle,"$url" . ","); fwrite($handle,"ref:");fwrite($handle,"$referer" . ","); fwrite($handle,"DATE:");fwrite($handle,"$date" . ","); fwrite($handle,"IP:");fwrite($handle,"$ip"); fclose($handele);header("location: $url");?>
  

(编辑:江门站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读