当前位置:Gxlcms > PHP教程 > 如何解析百度搜索结果link?url=参数

如何解析百度搜索结果link?url=参数

时间:2021-07-01 10:21:17 帮助过:48人阅读

  1. 查询百度link?ulr=真实链接表单
  2. /*
  3. getrealurl 获取301、302重定向后的URL地址 by enenba.com
  4. @param str $url 查询
  5. $return str 定向后的url的真实url
  6. */
  7. function getrealurl($url){
  8. $header = get_headers($url,1);
  9. if (strpos($header[0],'301') || strpos($header[0],'302')) {
  10. if(is_array($header['Location'])) {
  11. return $header['Location'][count($header['Location'])-1];
  12. }else{
  13. return $header['Location'];
  14. }
  15. }else {
  16. return $url;
  17. }
  18. }
  19. $input = '';
  20. $url = isset($_GET['url'])?$_GET['url']:'';
  21. if(empty($url)) exit($input);
  22. $urlreal = getrealurl($url);
  23. echo '真实的url为:'.$urlreal;
  24. $urlreal = ltrim($urlreal,'http://');
  25. $search = '/ebac5573358cc3c0659257bfcf54([0-9a-f]+)/i';
  26. preg_match($search,$url,$r);
  27. $url_encode = $r[1]; unset($r);
  28. echo '
    密文部分为:'.$url_encode.'
    ';
  29. $urlreal_arr = str_split($urlreal);
  30. $url_encode_arr = str_split($url_encode,2);
  31. echo '
    ';
  32. echo $input;
  33. ?>

声明:cnbeta上的文章不是我发布的。我解析只是根据自己的想法进行研究的,只是求个过程,至于有没有结果,我自有定论,大家别喷了。 仔细看了下百度结果url的长段代码,发现密文中只有数字和a到f字母组成,也就是十六进制的代码。 十六进制是从 0->1->2->3->4->5->7->8->9->a->b->c->d->e->f 我采集一系列的url并统计了第一位的代码。 ebac5573358cc3c0659257bfcf54XX...... XX这一位代码对应的url是这样的 33 0 23 @ 13 P 03 ` 73 p 63 ! 32 1 22 A 12 Q 02 a 72 q 62 " 31 2 21 B 11 R 01 b 71 r 61 # 30 3 20 C 10 S 00 c 70 s 60 $ 37 4 27 D 17 T 07 d 77 t 67 % 36 5 26 E 16 U 06 e 76 u 66 & 35 6 25 F 15 V 05 f 75 v 65 ' 34 7 24 G 14 W 04 g 74 w 64 ( 3b 8 2b H 1b X 0b h 7b x 6b ) 3a 9 2a I 1a Y 0a i 7a y 6a * 39 : 29 J 19 Z 09 j 79 z 69 + 38 ; 28 K 18 [ 08 k 78 { 68 , 3f < 2f L 1f \ 0f l 7f | 6f - 3e = 2e M 1e ] 0e m 7e } 6e . 3d > 2d N 1d ^ 0d n 7d ~ 6d / 3c ? 2c O 1c _ 0c o 7c 6c

发现应该是一个ascii码表中的字符,但是顺序应该是混淆了。但是都是这个一个进制内都是这样: 3->2->1->0->7->6->5->4->b->a->9->8->f->e->d->c 四位一个降序,看出总体是递减的。 但是不解的是 从_ 到 `在ascii是相邻的 对应的 0c 和 73 是跳跃的。没办法,看不出规律,再看看第二位的这组代码 ebac5573358cc3c0659257bfcf54XXYY。。。。 YY这一位代码对应的url是这样的 70 0 60 @ 50 P 40 ` 30 p 20 ! 71 1 61 A 51 Q 41 a 31 q 21 " 72 2 62 B 52 R 42 b 32 r 22 # 73 3 63 C 53 S 43 c 33 s 23 $ 74 4 64 D 54 T 44 d 34 t 24 % 75 5 65 E 55 U 45 e 35 u 25 & 76 6 66 F 56 V 46 f 36 v 26 ' 77 7 67 G 57 W 47 g 37 w 27 ( 78 8 68 H 58 X 48 h 38 x 28 ) 79 9 69 I 59 Y 49 i 39 y 29 * 7a : 6a J 5a Z 4a j 3a z 2a + 7b ; 6b K 5b [ 4b k 3b { 2b , 7c < 6c L 5c \ 4c l 3c | 2c - 7d = 6d M 5d ] 4d m 3d } 2d . 7e > 6e N 5e ^ 4e n 3e ~ 2e / 7f ? 6f O 5f _ 4f o 3f 2f

第二位的这一组的秘文很好的遵循 十六进制递增的顺序。 0->1->2->3->4->5->7->8->9->a->b->c->d->e->f 总体是递减的。 再看第三组 ebac5573358cc3c0659257bfcf54XXYYZZ。。。。 ZZ这一位代码对应的url是这样的 84 0 94 @ a4 P b4 ` c4 p d4 ! 85 1 95 A a5 Q b5 a c5 q d5 " 86 2 96 B a6 R b6 b c6 r d6 # 87 3 97 C a7 S b7 c c7 s d7 $ 80 4 90 D a0 T b0 d c0 t d0 % 81 5 91 E a1 U b1 e c1 u d1 & 82 6 92 F a2 V b2 f c2 v d2 ' 83 7 93 G a3 W b3 g c3 w d3 ( 8c 8 9c H ac X bc h cc x dc ) 8b 9 9b I ab Y bb i cd y dd * 8e : 9e J ae Z be j ce z de + 8f ; 9f K af [ bf k cf { df , 88 < 98 L a8 \ b8 l c8 | d8 - 89 = 99 M a9 ] b9 m c9 } d9 . 8a > 9a N aa ^ ba n ca ~ da / 8b ? 9b O ab _ bb o cb db

不解释了上顺序: 4->5->6->7->0->1->2->3->4->c->b->e->f->8->9->a->b 总体是递增的 还没看后面的位数,不过大概可以知道是 四位为一组的混淆十六进制混淆,至于是递增还是递减,需要一定的数据量来判断。 下次采集1000条url数据进行判断。

人气教程排行