cncml手绘网

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

作者: admin    时间: 2018-8-19 01:14
标题: PHP获取来路域名
  1. $url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL8 w" F$ P: H5 U' _! ?7 {! f( Y8 k5 _

  2. 6 |/ i" y$ C" O+ u
  3. $str = str_replace("http://","",$url); //去掉http://
    # g" I- Z7 \* ]5 K7 b* f
  4. $strdomain = explode("/",$str); // 以“/”分开成数组, ~" X/ L& i( e  n
  5. $domain = $strdomain[0]; //取第一个“/”以前的字符
    & Z4 p6 v  j8 T" q" }$ v* |3 ^

  6. : r( W9 W8 z2 o  D
  7. 用上面的方法才准确无误,如果你用PHP自带的函数就不对如:& B: X7 p  c" ^- E
  8. $_SERVER['SERVER_NAME'] 这个函数它获取的是服务器域名
复制代码
  1. echo $_SERVER['HTTP_REFERER'];7 u0 \3 C: X& E) s/ d7 A
  2. 这个获取上个页面的url
    1 N2 o- N0 c2 U. ~! C6 L- a
  3. 例如获得的是 $url = http://www.weisuyun.com/nihao.html
    8 J5 R/ [" A$ s' r4 c1 ^
  4. 其他页面提交过来的不接受* U) ^0 T1 u) T
  5. if(strpos($url,'http://www.weisuyun.com')){
    5 X+ \% R' e* C7 C1 G2 U6 O' C' m
  6. echo '来源正确';
    / l' H  i3 i7 ~- H$ u  s4 L5 _

  7. 2 o. v2 f/ k6 j. a; V
  8. }else{! e5 Z  \( s; u! `  |& }: H
  9. echo '来源不明';
    2 L& [6 i  N0 n
  10. }/ i& b3 G, k; B! e
  11. strpos方法返回指定字符串所在指定字符串第一次出现的位置,没有则返回false,下标从0开始
复制代码

& I* ^! C. g5 s+ C6 a4 F  H- s1 z* z& Y+ E  ]

! ?" A! Q; Z! I利用PHP获取访客IP、地区位置、浏览器及来源页面等信息0 S9 w& P5 s! ^7 L1 c4 w4 h( W
  H( R6 A, Q8 }9 R$ b

7 M. {8 g' {+ N/ q2 z! {

前言

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

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

示例代码

  1. <?php; Z% j, i/ d7 B6 |( S
  2. //这个类似用来获取访客信息的9 L  g# B7 r, H  F$ p
  3. //方便统计
    " x) d' @& @, m4 u8 ~4 N3 R3 y
  4. class visitorInfo
    # o% C+ J6 u- W
  5. {( _. u9 N& K, M3 N' E: ~
  6. //获取访客ip( k+ x- q) T3 v7 ?$ @
  7. public function getIp()
    2 H) m' I! Z4 P; p$ B! J- `, S
  8. {
    ' E$ Q' N+ e2 ~+ _
  9.   $ip=false;6 f/ ?% ~; Z" c- `
  10.   if(!empty($_SERVER["HTTP_CLIENT_IP"])){! a! D$ B/ K$ d6 Q5 S4 }
  11.    $ip = $_SERVER["HTTP_CLIENT_IP"];' d; C) q4 G5 b
  12.   }! K6 Q/ C4 s' l- z* s: R) ]- f4 G
  13.   if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    # i) k: Y% C! @+ B; }/ i
  14.    $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);/ F1 r. S" i" ~! w3 [" l& b& X
  15.    if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }. j1 [8 A+ S) v/ _, M5 u1 _- @2 I
  16.    for ($i = 0; $i < count($ips); $i++) {
    7 v" ]6 @+ ~" h+ ?  P1 w
  17.     if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
    7 O* h" U* D& {' w- q. j
  18.      $ip = $ips[$i];
    * A5 e- Q. W9 ]% M
  19.      break;, r* d! G% G/ F+ s; k( u- b
  20.     }
    / R! v, m/ s2 G' K  a2 z( R& [+ f; c
  21.    }
    ; t- x, L' F, W* s- ?
  22.   }* e5 p8 d% }& f( h1 G
  23.   return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
    # D5 C, `1 X1 o
  24. }4 H  B/ k0 m6 i" @% B) O. i- Z' \0 h
  25. / T) k: f3 w# ^4 N$ Y; I
  26. //根据ip获取城市、网络运营商等信息; Y4 _5 M. f  R- O, U" O
  27. public function findCityByIp($ip){. Y( h! t  g- ~: N2 v
  28.   $data = file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$ip);
    ( ~' \+ ]- }5 L
  29.   return json_decode($data,$assoc=true);
    # v6 ?/ t* `/ ]" y3 J7 F/ ]
  30. }% n; A2 U% E" V1 m3 l# q

  31. & D+ {6 C% S6 O4 c! y# S
  32. //获取用户浏览器类型4 M- R# a, U7 g6 ~
  33. public function getBrowser(){8 ]; h  q7 z0 ]1 r3 }) L- m- Y! P. J
  34.   $agent=$_SERVER["HTTP_USER_AGENT"];! u5 G% v+ q- I7 B
  35.   if(strpos($agent,'MSIE')!==false || strpos($agent,'rv:11.0')) //ie11判断7 F/ w0 ]7 [% ^9 \) v6 F* d3 n
  36.    return "ie";
    ; T( X: T' N4 L: J6 o. P/ q1 e
  37.   else if(strpos($agent,'Firefox')!==false)& k8 E0 r. z1 K( U! b/ y
  38.    return "firefox";
    7 m7 a6 b8 M% {. `
  39.   else if(strpos($agent,'Chrome')!==false)4 u- `6 o& n4 V& y" c( i2 L' ?, c1 `
  40.    return "chrome";
    2 ]: T! _& L7 w  w
  41.   else if(strpos($agent,'Opera')!==false); Y4 p$ \/ ^8 p4 Z
  42.    return 'opera';
    6 v' ?/ T/ q' C; h
  43.   else if((strpos($agent,'Chrome')==false)&&strpos($agent,'Safari')!==false): r- y9 f2 ]5 X& P8 ?
  44.    return 'safari';
    " r# {! p, s" s7 R% P: Z: ~
  45.   else# U# e: l" D/ v7 m; x6 ^) u( P% w
  46.    return 'unknown';+ ]% u5 ^  \- C+ o6 O
  47. }0 N) B9 C4 j- _+ K. ?

  48. % P$ O. U# ?( e& a8 }
  49. //获取网站来源
    ) O2 ]! w  H/ r3 V
  50. public function getFromPage(){  H* I; |+ r/ c* M
  51.   return $_SERVER['HTTP_REFERER'];; ~% \% a, Y- [+ Y
  52. }
    . W, D9 f6 R3 b7 N% Y- ?
  53. + s, b3 A5 H! K' D* G- Q
  54. }
复制代码

总结

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

- I1 A- `$ K/ D

5 M# s4 `1 v: u* ]4 ~




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