cncml手绘网

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

作者: admin    时间: 2018-8-19 01:14
标题: PHP获取来路域名
  1. $url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL
    2 o9 w' r) S3 `1 {
  2. ! \/ i* Q+ ^( _" H. y. z/ b
  3. $str = str_replace("http://","",$url); //去掉http://
    5 \% j( n- ]1 t9 v
  4. $strdomain = explode("/",$str); // 以“/”分开成数组
    * K* u& J' B9 s
  5. $domain = $strdomain[0]; //取第一个“/”以前的字符: y  i+ g# C: K! G; U

  6. " ~& T4 B6 S4 {9 m0 \+ g
  7. 用上面的方法才准确无误,如果你用PHP自带的函数就不对如:6 f" I, I, g1 G2 [# M, S8 Y& A2 x
  8. $_SERVER['SERVER_NAME'] 这个函数它获取的是服务器域名
复制代码
  1. echo $_SERVER['HTTP_REFERER'];6 X. o. \0 M* R! y3 z  l
  2. 这个获取上个页面的url
    8 @) s4 S3 n& ]7 C9 O
  3. 例如获得的是 $url = http://www.weisuyun.com/nihao.html
    + l8 Q9 o7 ^$ Z8 f% t
  4. 其他页面提交过来的不接受
    9 l( j3 {: ^( d2 V4 \. G
  5. if(strpos($url,'http://www.weisuyun.com')){1 c( [! E1 G2 ^' X
  6. echo '来源正确';
    " P5 G! m5 d/ [! A( V

  7. + z. B, ~- a$ [8 P) Y8 [
  8. }else{
    6 `8 O! Z% d5 W
  9. echo '来源不明';/ B( [8 `5 T6 x( r* S5 o( Z$ Q
  10. }& I' u! s1 ~( z( r( J3 u0 \
  11. strpos方法返回指定字符串所在指定字符串第一次出现的位置,没有则返回false,下标从0开始
复制代码
1 v- d6 U$ y# Y+ Z+ W" D' H
3 j' _5 ~6 ]; F5 M
% n4 C* l8 P' L9 b. O9 B" n7 s
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息& L& U$ t, Y/ A3 [) v3 u$ z3 c
5 H: Q) R. w% t$ x% L5 m

6 ]' }1 T" p- e# ]! u( j) H  c- @

前言

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

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

示例代码

  1. <?php
    $ W7 V2 o" u: {1 {5 J
  2. //这个类似用来获取访客信息的9 B9 J" |- w! A. E9 v0 c7 {+ l
  3. //方便统计
    % o2 c/ n5 ?1 P: l. ]  F$ a
  4. class visitorInfo
    * N# k1 w' p8 G% F" S
  5. {
    1 b$ g$ x2 u0 {( x
  6. //获取访客ip$ p' ^+ V. b8 h/ u
  7. public function getIp()1 j) ^5 h$ d& b+ K
  8. {) I2 I8 d9 j2 V" @! }
  9.   $ip=false;6 |  J# V& Y* y- B. k' \
  10.   if(!empty($_SERVER["HTTP_CLIENT_IP"])){% d: b& ~4 x% ~4 r) e
  11.    $ip = $_SERVER["HTTP_CLIENT_IP"];
    0 h% x/ ~( z7 d) V1 a! K
  12.   }
    ' s& M! q1 K# d% _: p- m
  13.   if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {% w% u% O' J- q* ?
  14.    $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
    . V4 F' ^: c! G  X" d3 T2 t/ `
  15.    if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
    " d! U) f. {, z
  16.    for ($i = 0; $i < count($ips); $i++) {
    0 @/ _: M, {/ {- ~3 \6 G
  17.     if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {- ?/ V8 m5 d$ q, X$ D" p9 q
  18.      $ip = $ips[$i];3 s2 Y: H7 v. v! P
  19.      break;- H+ \. e8 s, w" L3 F) r* t, i
  20.     }1 _3 W; p6 G7 y9 k# G
  21.    }
    4 y+ O# x& \8 y+ U5 g
  22.   }! Y" t0 r- v9 k  j- I0 Y
  23.   return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
    ; O$ K. Q2 g0 Z/ z" }% F4 k( W9 ~
  24. }9 o1 Z3 Y7 X0 g. h9 }0 k

  25. ( g: M. w9 S' p. H3 Q3 Z
  26. //根据ip获取城市、网络运营商等信息
    . C3 e# t' e/ F6 n  @
  27. public function findCityByIp($ip){  F/ J7 y  L- m  t' n, ~
  28.   $data = file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$ip);
    7 O6 L+ ?2 L8 {* z" \
  29.   return json_decode($data,$assoc=true);
    0 u+ Z8 u$ _: K# H) m
  30. }
    . `8 E! E  a: l) S$ @9 M! k, ?

  31. * l7 {% ?1 Y1 S2 p6 R* y8 S
  32. //获取用户浏览器类型: v9 y* f: _- ?% Y( H+ `9 o* o
  33. public function getBrowser(){
    7 b. w6 Z0 u3 y2 ~" T3 R
  34.   $agent=$_SERVER["HTTP_USER_AGENT"];% p/ f7 j" ]/ Z( v' J
  35.   if(strpos($agent,'MSIE')!==false || strpos($agent,'rv:11.0')) //ie11判断
    4 H: z3 ~5 d1 I! y7 i2 S
  36.    return "ie";- [! ]7 w8 L' l* x0 G* E: M5 j
  37.   else if(strpos($agent,'Firefox')!==false)
    " F3 k9 \: ^7 ~
  38.    return "firefox";
    0 X7 ~$ Z& ?# E+ ~2 x% y! q
  39.   else if(strpos($agent,'Chrome')!==false)0 g  R$ j" ^! |3 N: n+ Q$ W
  40.    return "chrome";9 s9 Y, T  |8 W6 a# q: ?: {
  41.   else if(strpos($agent,'Opera')!==false)
    / b7 y8 d$ t# B3 |
  42.    return 'opera';" K1 h$ E7 K' {4 E; X: b
  43.   else if((strpos($agent,'Chrome')==false)&&strpos($agent,'Safari')!==false)
    , f+ n" ]) `7 V/ T6 D
  44.    return 'safari';
    ( c4 c/ R5 h" ^; v
  45.   else
    + G8 S6 t0 P4 X- \  I# a# x
  46.    return 'unknown';9 j5 |" d4 g$ k
  47. }
    5 E; C, m8 y) L/ U3 a
  48. 9 i0 _2 A/ i. C; ~/ U/ u1 @
  49. //获取网站来源7 N: T' W. t# q0 w/ w( U3 E
  50. public function getFromPage(){
    4 R! G" e7 h; d8 c2 u  A) `
  51.   return $_SERVER['HTTP_REFERER'];
    3 G) N7 z% t% ?( [! V
  52. }
    0 r" P3 Z! c5 x5 f

  53. % X" Z1 w$ r8 m3 h* z% E( v
  54. }
复制代码

总结

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


0 n' z) p( f& C4 e) |
* q: Q* ]; Z( O5 i& ?! m1 c4 U




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