cncml手绘网

标题: PHP获取来路域名 [打印本页]

作者: admin    时间: 2018-8-19 01:14
标题: PHP获取来路域名
  1. $url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL* Q0 |9 i1 V7 S+ I$ X1 M

  2. ( j1 ?. E& k1 k1 {6 \8 l
  3. $str = str_replace("http://","",$url); //去掉http://
    3 V. v! q3 ^- Q4 ~9 Q
  4. $strdomain = explode("/",$str); // 以“/”分开成数组" Z, {/ N' N8 P
  5. $domain = $strdomain[0]; //取第一个“/”以前的字符% e4 R" w) {1 C% L3 }

  6. 1 f( ?4 ~2 l2 E/ T, `6 t5 X
  7. 用上面的方法才准确无误,如果你用PHP自带的函数就不对如:4 ~* q5 @, X8 Q% S; S
  8. $_SERVER['SERVER_NAME'] 这个函数它获取的是服务器域名
复制代码
  1. echo $_SERVER['HTTP_REFERER'];- ~; u, W3 g9 O6 e$ s
  2. 这个获取上个页面的url7 f/ A- v( P, Q! ~
  3. 例如获得的是 $url = http://www.weisuyun.com/nihao.html- N( U2 q4 ?2 }7 a2 V7 q- S
  4. 其他页面提交过来的不接受2 k" _4 n& W' a
  5. if(strpos($url,'http://www.weisuyun.com')){
    . @0 W, y' B+ s- q1 I1 f* S
  6. echo '来源正确';( A6 A! y2 |  t* X) C2 ?

  7. 8 [! o! }' D6 D) x6 k; R3 q% w
  8. }else{
    , ^2 c& \! L% x5 N6 g' Q2 N. {8 P
  9. echo '来源不明';
    # a  g. f' F9 s
  10. }
    7 {4 p4 R0 ^: n% V
  11. strpos方法返回指定字符串所在指定字符串第一次出现的位置,没有则返回false,下标从0开始
复制代码
& b6 m! v/ a7 N  U

( H. w3 @2 D: K7 u1 n& ]+ }0 ~4 p- o7 B8 y1 `% L0 K
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息( d6 D6 K0 L4 B3 E4 ^
  t" H# f0 j0 Z* ]0 n
2 l' T! ^# ?7 M* c) `/ e) Z

前言

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

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

示例代码

  1. <?php
    6 U8 ~8 S2 O( B0 m3 X3 A9 V' V5 o3 t; ^
  2. //这个类似用来获取访客信息的
    0 g3 |( f6 U! l3 M6 v5 P
  3. //方便统计
    & ~. {# U8 B9 g$ _  a, U2 ?
  4. class visitorInfo
    % C( B  N9 y# o' A1 H- H& F! U
  5. {
    " b4 J, g% k) l- D- H. n
  6. //获取访客ip+ v$ K! U  y9 [  w
  7. public function getIp()
    7 d+ s# z% w) e' a: C
  8. {, l; A, J* _  @% Y9 i5 L
  9.   $ip=false;
    " y' R, ~$ I: Z1 l4 `3 h( Y
  10.   if(!empty($_SERVER["HTTP_CLIENT_IP"])){
    ) k) O& W1 U* J6 G6 b$ D- _
  11.    $ip = $_SERVER["HTTP_CLIENT_IP"];
    8 b6 s, X% q! ^* @
  12.   }7 M: w/ x. y5 ?$ S! j
  13.   if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    1 y0 ~, B  y, `# t
  14.    $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);' i: j( x3 o0 g  z7 N7 o5 E
  15.    if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
    2 Q2 T+ t& B. a2 P+ J% c
  16.    for ($i = 0; $i < count($ips); $i++) {
    5 l+ W6 L6 q  b, h
  17.     if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
    # Z# C( K* B1 h
  18.      $ip = $ips[$i];
    / v6 T3 A. }* o  j* P
  19.      break;
      a4 w0 `7 w' ~8 l1 m
  20.     }
    1 L4 J5 Q& Q- m+ F: I; j
  21.    }
    0 x& P. l9 \: ^8 ?: k
  22.   }
    / }9 \, C- C" \! P4 q
  23.   return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
    & _5 b( i# ?" t0 A2 O; H7 m
  24. }
    : B' D( ^: X7 c; S) X4 ?
  25. : P  |: {7 f; x* w1 s" D
  26. //根据ip获取城市、网络运营商等信息
    7 ^/ J  _8 D4 }& @* ]
  27. public function findCityByIp($ip){
    ) e! @% K  L7 }' T
  28.   $data = file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$ip);0 x7 ]. }7 D) m! L! s6 T% Y
  29.   return json_decode($data,$assoc=true);
    3 V& P4 w* w$ ~4 D: C
  30. }/ c' g- U! c* t  r. M& o5 I

  31. ; [4 ?; a! @  Z! h) T6 g
  32. //获取用户浏览器类型8 ^9 e+ O! m( O; X
  33. public function getBrowser(){, D4 O2 [9 V/ J/ h1 B0 V
  34.   $agent=$_SERVER["HTTP_USER_AGENT"];, c$ K, ?7 J) d4 [4 g" u
  35.   if(strpos($agent,'MSIE')!==false || strpos($agent,'rv:11.0')) //ie11判断
    8 t' x  z1 n. R) }1 ]* M
  36.    return "ie";3 N6 n0 p8 c4 J* t' k
  37.   else if(strpos($agent,'Firefox')!==false)6 L  o- n) L2 c1 V
  38.    return "firefox";
    4 a7 P8 j2 d- a. X+ {
  39.   else if(strpos($agent,'Chrome')!==false)
    & j3 p- ^: W& H0 E
  40.    return "chrome";, e+ C3 k) x$ a3 }  G
  41.   else if(strpos($agent,'Opera')!==false)9 G5 E0 I  n) X5 ?! o) B
  42.    return 'opera';
    ) n: P' v( e7 _. d
  43.   else if((strpos($agent,'Chrome')==false)&&strpos($agent,'Safari')!==false)
    % f: A' K3 C9 X1 h+ |& o! e( L# z
  44.    return 'safari';1 |- b9 Q- Z$ ]2 h; o9 @
  45.   else
    ' B2 N3 z3 j9 Z: i# I& J" i
  46.    return 'unknown';9 l( D$ y$ B8 u3 }
  47. }/ N$ S3 u1 \) V  P
  48. / P$ }, R* b/ G, u$ j
  49. //获取网站来源, v" ~' E1 R% L5 Y6 e
  50. public function getFromPage(){
    1 f/ Q" T# l+ X8 w' b; ^) }, T( ]
  51.   return $_SERVER['HTTP_REFERER'];# Z3 H9 ]; C$ r+ r% z8 u* u! O
  52. }
    9 w7 A9 j; `3 Z8 p" T. s: V
  53. ; @$ M  |6 i. h% Y. E9 @6 v
  54. }
复制代码

总结

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


- O3 W# f' A+ `+ O8 n0 l: q' m: B- a' P; a





欢迎光临 cncml手绘网 (http://www.cncml.com/) Powered by Discuz! X3.2