cncml手绘网
标题: PHP获取来路域名 [打印本页]
作者: admin 时间: 2018-8-19 01:14
标题: PHP获取来路域名
- $url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL. _) F, {3 \. c% }$ b
+ ]2 h) m1 _) D+ \- $str = str_replace("http://","",$url); //去掉http://
7 a/ t* ?6 Y/ n5 b - $strdomain = explode("/",$str); // 以“/”分开成数组
; @: Y: f. n _. P/ ]/ @8 C - $domain = $strdomain[0]; //取第一个“/”以前的字符
3 Z4 {+ {: Y9 R; r7 Q2 g7 v - / y! {- P: Y4 Y+ @9 {% @
- 用上面的方法才准确无误,如果你用PHP自带的函数就不对如:; \' M% q8 F7 c" z2 T
- $_SERVER['SERVER_NAME'] 这个函数它获取的是服务器域名
复制代码- echo $_SERVER['HTTP_REFERER'];( t2 m K2 a' m
- 这个获取上个页面的url v" R w. H! i9 _
- 例如获得的是 $url = http://www.weisuyun.com/nihao.html: i- D2 O& k/ y% ?0 j+ {
- 其他页面提交过来的不接受
& m8 l3 W' z0 S0 g" P, h) J - if(strpos($url,'http://www.weisuyun.com')){1 O* j- U' F1 g5 \; _ g
- echo '来源正确';
5 b: f" x1 u5 m - 7 y5 ^$ b! _$ j- y+ c
- }else{
. A! F2 [/ R2 ?* m: k - echo '来源不明';: p2 D9 d1 M( m0 ]$ V
- }4 m3 T" k5 @9 p
- 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、地区位置、浏览器及来源页面等信息的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:
不多说了,每个方法都注释了,可以直接用:
示例代码
- <?php
% U9 l: N- `' T& M9 E - //这个类似用来获取访客信息的" e2 }) o g- O3 o0 X; i! c
- //方便统计
; o6 `7 e% `) D4 m8 ? - class visitorInfo$ V0 k, T. i! i' ]
- {
( o5 k3 D& X( z8 R1 {1 \8 a - //获取访客ip
# a% R0 r* M% F3 b; u - public function getIp()
8 t1 m; m u4 X5 ~8 k - {" B& A' ~" V6 S8 E% W' _
- $ip=false;
* {) `; q* G+ ~/ N6 k. |, b. F& J - if(!empty($_SERVER["HTTP_CLIENT_IP"])){
" D9 o+ p$ c# u: y" w% H) p- Z5 p - $ip = $_SERVER["HTTP_CLIENT_IP"];
5 h& B ], [ s* _8 ]+ u - }
5 Y X0 n' E; N) C$ D! h2 x" L - if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {: ?3 E8 n1 U9 }" Z; E8 q5 o
- $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);( x+ G% k6 L: \8 U9 N
- if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }8 `; }6 k; y- `" i: v% j+ @: |
- for ($i = 0; $i < count($ips); $i++) {
9 M( T' ^) I% S# Q; G" w* B - if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
/ _& Y9 C7 V8 ]2 J5 w- W( G - $ip = $ips[$i];& ~' E" h7 Z) J' h
- break;, w; ^! @5 G' w
- }
+ g" u, n, D1 m% x$ [/ K - }
: K$ `* [5 {- S# J% F: L - }
) J+ Y9 o$ K$ w1 u1 `1 e% l+ k- p- D - return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);" `- E( ]- g9 R! y! l) F
- }
+ u" l; T1 O G# Q$ \) r$ C# F -
0 k/ b" r C& g; ~" d) N' [ - //根据ip获取城市、网络运营商等信息
6 r' I) ? Y$ F. c. ? - public function findCityByIp($ip){4 I# s- ^2 K3 m( j
- $data = file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$ip);
4 q0 g, d# _$ \$ m1 h2 Q) L. J - return json_decode($data,$assoc=true);
6 c* k2 }" B5 ^; I0 f - }7 s" Y) ~, { c# `1 G @- n1 C
-
' n0 U2 w1 d. E/ `$ n2 {. Z - //获取用户浏览器类型4 {/ H3 h/ g! A- s( W6 C, ^
- public function getBrowser(){# X" ~, n( \9 l) o. {# ^7 ?
- $agent=$_SERVER["HTTP_USER_AGENT"];! b/ w2 U0 @- G" T
- if(strpos($agent,'MSIE')!==false || strpos($agent,'rv:11.0')) //ie11判断) O! {' I0 _; y7 R y( @) `
- return "ie";/ X" C, ?9 `! F/ f# F" B$ o
- else if(strpos($agent,'Firefox')!==false)- W1 L, q* G9 C* V; j& U9 E; e
- return "firefox";- X7 J* q' B7 I# L$ p# \" W3 z
- else if(strpos($agent,'Chrome')!==false)4 ]/ e5 |. }. H1 {1 b
- return "chrome";- }( D9 h s0 F' Q% i
- else if(strpos($agent,'Opera')!==false)4 D. J. |( q4 {- e. S
- return 'opera';
8 @& H2 b3 e. l - else if((strpos($agent,'Chrome')==false)&&strpos($agent,'Safari')!==false); x3 R1 O. i6 \7 N; @7 r. _( V; S
- return 'safari';8 w9 W/ D1 M; S
- else
% r/ Y" B7 f5 V+ L3 Q - return 'unknown';. S" b0 F0 y% {" q6 ]3 O4 ?* H' [
- } J! u) ^8 G" \# f" i
-
5 J* c; C$ Q! h7 u - //获取网站来源( e' U7 ?% S" y6 T( |* c; `- @
- public function getFromPage(){( M% I, J% i5 ^; U, K
- return $_SERVER['HTTP_REFERER'];" a0 D) r6 `2 t& c
- }
- z' A0 ~' d3 h7 F8 f4 ?, i2 u - 7 S# s7 s8 Z4 U% `6 R4 G
- }
复制代码总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
t* s$ K, c0 G( R2 ]: M2 h* G, X& E3 z: t
| 欢迎光临 cncml手绘网 (http://bbs.cncml.com/) |
Powered by Discuz! X3.2 |