cncml手绘网

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

作者: admin    时间: 2018-8-19 01:14
标题: PHP获取来路域名
  1. $url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL
    5 R% A; g" a; q$ ^" U/ n/ |
  2. " Q6 M1 {% F/ D- N* k
  3. $str = str_replace("http://","",$url); //去掉http://
    3 c$ h2 N6 L. X% x, R) A" W
  4. $strdomain = explode("/",$str); // 以“/”分开成数组
    % O4 d, }- L, ]6 d0 h
  5. $domain = $strdomain[0]; //取第一个“/”以前的字符
    0 A6 e1 C' c+ s
  6. # U0 _  ~$ ?" P0 ]- Z  H( p& D
  7. 用上面的方法才准确无误,如果你用PHP自带的函数就不对如:+ j) }; V1 \4 U
  8. $_SERVER['SERVER_NAME'] 这个函数它获取的是服务器域名
复制代码
  1. echo $_SERVER['HTTP_REFERER'];
    7 o: ?. |! T  j& S" `* ~. M" n
  2. 这个获取上个页面的url
    * z3 V: B) Q0 Y
  3. 例如获得的是 $url = http://www.weisuyun.com/nihao.html
    " K( R6 Z& P1 Q5 ?3 q/ q$ w
  4. 其他页面提交过来的不接受% B0 T* T  @2 L# B; j7 B
  5. if(strpos($url,'http://www.weisuyun.com')){
      Q) F  n( ?4 ~4 ~
  6. echo '来源正确';9 d* Y" Y3 e" c( \$ M4 B
  7. $ C, ^+ t" K  b$ m4 u3 F, u
  8. }else{) m$ P5 Y! V3 Y2 t
  9. echo '来源不明';  O$ W' X7 V# b, Y
  10. }, ^9 }- j) H0 [& x8 F
  11. strpos方法返回指定字符串所在指定字符串第一次出现的位置,没有则返回false,下标从0开始
复制代码
9 t; y7 P1 i* n: h8 \* s6 b0 E
( b/ F& y" X3 T

0 Q5 S1 `& D! K" s利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
5 c0 S& X2 o& o- |1 h5 K1 g* y- q& N

& k+ k' @  t% X9 Q  z* _, }  }, t2 n

前言

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

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

示例代码

  1. <?php0 X$ U  k) o0 I0 @' D
  2. //这个类似用来获取访客信息的
    " x* M' @5 }$ {3 h
  3. //方便统计
    ! S- G5 ^3 V6 B, o  S
  4. class visitorInfo
    : B+ r* }5 X  d/ E. E- i
  5. {
      \4 m& d, w! O* w* `6 g
  6. //获取访客ip
    # n& X0 I9 g" {/ F
  7. public function getIp()  [+ P" z, |- I
  8. {$ y5 b2 h! ?. X) |; r2 q& L+ y
  9.   $ip=false;
    ) I4 r5 f% A' v0 ?. e8 X' J: h! K
  10.   if(!empty($_SERVER["HTTP_CLIENT_IP"])){7 P, c% K" h! `) _3 T) X$ A9 w
  11.    $ip = $_SERVER["HTTP_CLIENT_IP"];
    2 v  m9 |0 d0 ~; T
  12.   }
    . P: h+ N" C% Q% r
  13.   if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    ; p! z7 a8 Z% n5 Y# C9 r% a1 I6 k
  14.    $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
    ( l& `) v+ x) R4 }2 w0 k' n
  15.    if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
    ! E  K( ~9 y2 G
  16.    for ($i = 0; $i < count($ips); $i++) {4 q: i( E' T9 I/ m  T# D8 ]) a
  17.     if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {" F5 D# D/ Q8 T6 A! D4 i
  18.      $ip = $ips[$i];3 E4 W$ a+ G. M0 H, V9 F* z
  19.      break;
    7 V# M+ a8 A: J
  20.     }. P% j5 R: U: c0 L+ Q
  21.    }+ ~' F% U- @" S! h' S! ?
  22.   }# u8 K" {- K/ R% ?) j. I
  23.   return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);: Z' H, H; R; |5 y4 {2 R& b2 C
  24. }
    2 w2 n1 s7 k* v: u0 w

  25. ; f8 q4 P* J- j/ s% j3 V# L
  26. //根据ip获取城市、网络运营商等信息
    $ H+ N1 ]7 h  a
  27. public function findCityByIp($ip){
    % |6 p, C2 a8 _0 P) U5 w+ s' C
  28.   $data = file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$ip);
    + I+ \! Y3 D* G& Z# \; I# n
  29.   return json_decode($data,$assoc=true);' }/ Z; r1 C& T- ^( T! E1 [
  30. }
    # @! R/ N- [$ V  x2 e: S
  31. ) U9 V: J0 S% ], w
  32. //获取用户浏览器类型
    9 z* z) _  A- A4 d$ I9 e  M
  33. public function getBrowser(){
    # t5 u# L; N7 T2 M
  34.   $agent=$_SERVER["HTTP_USER_AGENT"];
    ' `  w4 U4 |3 D  R4 L
  35.   if(strpos($agent,'MSIE')!==false || strpos($agent,'rv:11.0')) //ie11判断
    ! B9 A" z& Q: d/ ^
  36.    return "ie";: s6 R5 i, d2 K
  37.   else if(strpos($agent,'Firefox')!==false)5 `- h/ `4 m' E# N1 M+ H+ F
  38.    return "firefox";
    0 X, }& C2 D! Y6 e& T2 f# w/ \4 h9 g
  39.   else if(strpos($agent,'Chrome')!==false)
    ( [  ~: [! W; Q. s; t4 `" }- S# H* R+ U
  40.    return "chrome";
    + U9 T$ O- Q+ ~5 \, ~2 S
  41.   else if(strpos($agent,'Opera')!==false): j5 Z  f! |9 Y/ l4 c* f3 e5 Q2 X
  42.    return 'opera';" {# P+ w/ f0 _' z. R) r$ @
  43.   else if((strpos($agent,'Chrome')==false)&&strpos($agent,'Safari')!==false)4 G7 E  C$ m" @
  44.    return 'safari';* b' {& g& @" E7 t& a. `
  45.   else3 ?& G% d& E5 w
  46.    return 'unknown';
    5 }* }# I6 Z7 j' e8 U7 T7 z- u
  47. }" h* {/ V* k' @  p/ Z

  48. 0 F$ Y  n4 T* ?
  49. //获取网站来源; U) B/ i. \0 k; i# n2 q
  50. public function getFromPage(){
    0 _1 G& l, m# H: v  n
  51.   return $_SERVER['HTTP_REFERER'];! o$ _4 C: u( p. _* w- \/ L
  52. }
    0 ~. i2 L/ G; k8 t$ N& W
  53. " _6 v# S8 \+ U% P5 U4 O
  54. }
复制代码

总结

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


) \) Q( `6 ]  `! |  w4 v* K
$ U5 F, i/ F* K) O. a4 Q




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