您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14910|回复: 0
打印 上一主题 下一主题

[php学习资料] PHP获取来路域名

[复制链接]
跳转到指定楼层
楼主
发表于 2018-8-19 01:14:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. $url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL
    0 s$ o2 @7 K- p) W: Z1 y

  2. ' d: b3 ~+ Z# C
  3. $str = str_replace("http://","",$url); //去掉http://) y* P9 i: Q$ T/ A6 L: s
  4. $strdomain = explode("/",$str); // 以“/”分开成数组
    - I( }5 R* B$ E* Y2 \! z: o9 N
  5. $domain = $strdomain[0]; //取第一个“/”以前的字符5 s- |8 g! G* y5 Y
  6. $ s! d2 s/ K' L7 O4 C+ K5 ?
  7. 用上面的方法才准确无误,如果你用PHP自带的函数就不对如:7 V2 c: F# N/ ^, y
  8. $_SERVER['SERVER_NAME'] 这个函数它获取的是服务器域名
复制代码
  1. echo $_SERVER['HTTP_REFERER'];! Y1 S3 c* o9 s+ w4 E& R
  2. 这个获取上个页面的url
    $ n! F, F. u$ C1 c8 a. G
  3. 例如获得的是 $url = http://www.weisuyun.com/nihao.html
    9 H: @9 Y% B3 M7 X" J+ Z
  4. 其他页面提交过来的不接受
    : ?( U2 r5 w  g" m/ h" A, V
  5. if(strpos($url,'http://www.weisuyun.com')){0 y7 v6 u" g* C7 l4 ^0 x+ ]
  6. echo '来源正确';" q7 l; w; i- r& O* x8 e% l
  7. 6 d) a# I; v0 V& w; x3 |0 j
  8. }else{
    " U  u. r3 e( p; ]$ Z/ o7 k
  9. echo '来源不明';6 U. M7 _9 ]& K, |/ o
  10. }
    8 Y. \  G2 w9 P
  11. strpos方法返回指定字符串所在指定字符串第一次出现的位置,没有则返回false,下标从0开始
复制代码

. j1 a0 a1 K, a! v2 N, ^* l: U3 P
! T( F3 F( p" ]1 G& @' X2 `3 O4 j. U% J5 P: w+ M  O
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
/ N% v2 ]5 o' m4 Y: e
7 q8 |: Z/ O! {2 |4 c
% N2 D& U1 X/ I  ^/ G( e

前言

本文中主要介绍了关于利用PHP获取访客IP、地区位置、浏览器及来源页面等信息的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:

不多说了,每个方法都注释了,可以直接用:

示例代码

  1. <?php& }6 t& K" N! Y4 t
  2. //这个类似用来获取访客信息的, b- }1 m/ p' |+ `; h; `$ P; d
  3. //方便统计
    ! F: J1 q. y, i* R' U; w2 t- ?* H
  4. class visitorInfo
    + a/ z# n7 M+ m; W" V
  5. {
    # C% i- I- n* q# q+ r
  6. //获取访客ip
    $ g# `) x7 {* f
  7. public function getIp()
    : Z. K. v& K. J7 ^
  8. {
    1 b0 r# J$ w# ~
  9.   $ip=false;
    - s% q6 E6 K0 k: V1 ~/ j- ^
  10.   if(!empty($_SERVER["HTTP_CLIENT_IP"])){- u  p: {! w5 ^0 e
  11.    $ip = $_SERVER["HTTP_CLIENT_IP"];
    / F+ Z1 c4 ^2 _6 u, `" o6 S
  12.   }
    & G, c  m% n9 K1 v, l( F
  13.   if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    * i( H  ^# e' F8 a2 i% q
  14.    $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);4 Q! B% Z1 N5 {/ s) ?
  15.    if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
    + w3 R' I8 m: C/ N
  16.    for ($i = 0; $i < count($ips); $i++) {
    " M+ w/ x4 N/ T, w
  17.     if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {+ g& L+ ^# v5 C0 N
  18.      $ip = $ips[$i];
    3 |; z2 n$ |, _7 k9 I
  19.      break;* }% u% W4 Y  o4 u' D
  20.     }) i0 b- ?  _' U. ~$ ]" C. R
  21.    }
    % X/ o0 N/ Z" k5 W+ E
  22.   }2 J2 Z& W: g6 e; I7 y, P! c$ u
  23.   return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
    ! b4 `5 w4 I' @9 X% ^/ ~' i
  24. }3 C' d4 U& D# N) A% `  u3 ]

  25. ; D4 H) i- h: u. S5 r
  26. //根据ip获取城市、网络运营商等信息0 W( g9 e% F! X! ]& q9 z
  27. public function findCityByIp($ip){
    7 J! r) \& a; Y+ [; {5 t- E
  28.   $data = file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$ip);# W$ t7 ~8 U, L5 M1 |& Z3 a
  29.   return json_decode($data,$assoc=true);
    " R. i6 i( F* U+ X' G* n
  30. }
    4 k+ N3 D/ e. Y. z

  31. ! {8 }( N2 z: L+ X7 E
  32. //获取用户浏览器类型% S+ S* ?0 C0 h+ a# `. A
  33. public function getBrowser(){
    , _, R4 }  f+ X, i/ K, }. [' N) P
  34.   $agent=$_SERVER["HTTP_USER_AGENT"];
      v5 q; I' ]0 P* L- h
  35.   if(strpos($agent,'MSIE')!==false || strpos($agent,'rv:11.0')) //ie11判断
    * c* _" R$ A# y/ P* {! {4 G5 s$ R
  36.    return "ie";7 ?6 Z  V0 d5 v% y1 n4 d1 @  d
  37.   else if(strpos($agent,'Firefox')!==false)
    , }% z1 P- O: e4 ~' W. r5 B
  38.    return "firefox";4 p9 g& k5 V; X8 }0 [% g
  39.   else if(strpos($agent,'Chrome')!==false)
    0 T' T& n, |2 F0 a$ B7 @
  40.    return "chrome";/ r% {4 R1 a1 p6 {+ h
  41.   else if(strpos($agent,'Opera')!==false)0 Z9 I* j$ G( T& J5 G" H
  42.    return 'opera';
    : M' {1 S! ]2 i2 u; w. H8 B
  43.   else if((strpos($agent,'Chrome')==false)&&strpos($agent,'Safari')!==false)
    9 u$ D0 B7 ]% e, _: R
  44.    return 'safari';
    7 M1 q- X6 K* V
  45.   else8 W- Q: F6 D8 J. L* A
  46.    return 'unknown';: q  N: x+ r3 v0 A
  47. }4 m5 y+ }1 @' x0 i" l
  48. 2 o& E8 z# P! q/ G0 ]1 I! ]
  49. //获取网站来源' g- B* Z) j0 {* |+ n* q
  50. public function getFromPage(){: P( f8 d' @; O
  51.   return $_SERVER['HTTP_REFERER'];
    ( w, J4 k9 B+ j* n- i8 t" m
  52. }
    ) q' H1 L9 K8 D, B9 G
  53. $ B& n# c1 \( l) m
  54. }
复制代码

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。


' \9 w& K; `# H; g* F# L! q! o; J
  H( c$ y3 {+ r/ h3 D2 J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 15:03 , Processed in 0.047180 second(s), 19 queries .

Copyright © 2001-2026 Powered by cncml! X3.2. Theme By cncml!