cncml手绘网

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

作者: admin    时间: 2018-8-19 01:14
标题: PHP获取来路域名
  1. $url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL. _) F, {3 \. c% }$ b

  2. + ]2 h) m1 _) D+ \
  3. $str = str_replace("http://","",$url); //去掉http://
    7 a/ t* ?6 Y/ n5 b
  4. $strdomain = explode("/",$str); // 以“/”分开成数组
    ; @: Y: f. n  _. P/ ]/ @8 C
  5. $domain = $strdomain[0]; //取第一个“/”以前的字符
    3 Z4 {+ {: Y9 R; r7 Q2 g7 v
  6. / y! {- P: Y4 Y+ @9 {% @
  7. 用上面的方法才准确无误,如果你用PHP自带的函数就不对如:; \' M% q8 F7 c" z2 T
  8. $_SERVER['SERVER_NAME'] 这个函数它获取的是服务器域名
复制代码
  1. echo $_SERVER['HTTP_REFERER'];( t2 m  K2 a' m
  2. 这个获取上个页面的url  v" R  w. H! i9 _
  3. 例如获得的是 $url = http://www.weisuyun.com/nihao.html: i- D2 O& k/ y% ?0 j+ {
  4. 其他页面提交过来的不接受
    & m8 l3 W' z0 S0 g" P, h) J
  5. if(strpos($url,'http://www.weisuyun.com')){1 O* j- U' F1 g5 \; _  g
  6. echo '来源正确';
    5 b: f" x1 u5 m
  7. 7 y5 ^$ b! _$ j- y+ c
  8. }else{
    . A! F2 [/ R2 ?* m: k
  9. echo '来源不明';: p2 D9 d1 M( m0 ]$ V
  10. }4 m3 T" k5 @9 p
  11. strpos方法返回指定字符串所在指定字符串第一次出现的位置,没有则返回false,下标从0开始
复制代码
7 G% p. G& V; L2 U8 X0 B1 `( G5 l9 `3 M
7 _* e6 `* f# X! Z! v
# p2 \% _, ^6 D: H- {
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
; G4 p# i1 b& t( H7 ~7 ~
, D' P3 a- T) W5 ]( W
; n: D- I- }8 M, e5 X6 L( ?

前言

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

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

示例代码

  1. <?php
    % U9 l: N- `' T& M9 E
  2. //这个类似用来获取访客信息的" e2 }) o  g- O3 o0 X; i! c
  3. //方便统计
    ; o6 `7 e% `) D4 m8 ?
  4. class visitorInfo$ V0 k, T. i! i' ]
  5. {
    ( o5 k3 D& X( z8 R1 {1 \8 a
  6. //获取访客ip
    # a% R0 r* M% F3 b; u
  7. public function getIp()
    8 t1 m; m  u4 X5 ~8 k
  8. {" B& A' ~" V6 S8 E% W' _
  9.   $ip=false;
    * {) `; q* G+ ~/ N6 k. |, b. F& J
  10.   if(!empty($_SERVER["HTTP_CLIENT_IP"])){
    " D9 o+ p$ c# u: y" w% H) p- Z5 p
  11.    $ip = $_SERVER["HTTP_CLIENT_IP"];
    5 h& B  ], [  s* _8 ]+ u
  12.   }
    5 Y  X0 n' E; N) C$ D! h2 x" L
  13.   if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {: ?3 E8 n1 U9 }" Z; E8 q5 o
  14.    $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);( x+ G% k6 L: \8 U9 N
  15.    if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }8 `; }6 k; y- `" i: v% j+ @: |
  16.    for ($i = 0; $i < count($ips); $i++) {
    9 M( T' ^) I% S# Q; G" w* B
  17.     if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
    / _& Y9 C7 V8 ]2 J5 w- W( G
  18.      $ip = $ips[$i];& ~' E" h7 Z) J' h
  19.      break;, w; ^! @5 G' w
  20.     }
    + g" u, n, D1 m% x$ [/ K
  21.    }
    : K$ `* [5 {- S# J% F: L
  22.   }
    ) J+ Y9 o$ K$ w1 u1 `1 e% l+ k- p- D
  23.   return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);" `- E( ]- g9 R! y! l) F
  24. }
    + u" l; T1 O  G# Q$ \) r$ C# F

  25. 0 k/ b" r  C& g; ~" d) N' [
  26. //根据ip获取城市、网络运营商等信息
    6 r' I) ?  Y$ F. c. ?
  27. public function findCityByIp($ip){4 I# s- ^2 K3 m( j
  28.   $data = file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$ip);
    4 q0 g, d# _$ \$ m1 h2 Q) L. J
  29.   return json_decode($data,$assoc=true);
    6 c* k2 }" B5 ^; I0 f
  30. }7 s" Y) ~, {  c# `1 G  @- n1 C

  31. ' n0 U2 w1 d. E/ `$ n2 {. Z
  32. //获取用户浏览器类型4 {/ H3 h/ g! A- s( W6 C, ^
  33. public function getBrowser(){# X" ~, n( \9 l) o. {# ^7 ?
  34.   $agent=$_SERVER["HTTP_USER_AGENT"];! b/ w2 U0 @- G" T
  35.   if(strpos($agent,'MSIE')!==false || strpos($agent,'rv:11.0')) //ie11判断) O! {' I0 _; y7 R  y( @) `
  36.    return "ie";/ X" C, ?9 `! F/ f# F" B$ o
  37.   else if(strpos($agent,'Firefox')!==false)- W1 L, q* G9 C* V; j& U9 E; e
  38.    return "firefox";- X7 J* q' B7 I# L$ p# \" W3 z
  39.   else if(strpos($agent,'Chrome')!==false)4 ]/ e5 |. }. H1 {1 b
  40.    return "chrome";- }( D9 h  s0 F' Q% i
  41.   else if(strpos($agent,'Opera')!==false)4 D. J. |( q4 {- e. S
  42.    return 'opera';
    8 @& H2 b3 e. l
  43.   else if((strpos($agent,'Chrome')==false)&&strpos($agent,'Safari')!==false); x3 R1 O. i6 \7 N; @7 r. _( V; S
  44.    return 'safari';8 w9 W/ D1 M; S
  45.   else
    % r/ Y" B7 f5 V+ L3 Q
  46.    return 'unknown';. S" b0 F0 y% {" q6 ]3 O4 ?* H' [
  47. }  J! u) ^8 G" \# f" i

  48. 5 J* c; C$ Q! h7 u
  49. //获取网站来源( e' U7 ?% S" y6 T( |* c; `- @
  50. public function getFromPage(){( M% I, J% i5 ^; U, K
  51.   return $_SERVER['HTTP_REFERER'];" a0 D) r6 `2 t& c
  52. }
    - z' A0 ~' d3 h7 F8 f4 ?, i2 u
  53. 7 S# s7 s8 Z4 U% `6 R4 G
  54. }
复制代码

总结

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


  t* s$ K, c0 G( R2 ]: M2 h* G, X& E3 z: t





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