免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2407 | 回复: 3
打印 上一主题 下一主题

通过推荐链接批量注册Dropbox账号 (欢迎拍砖) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-19 17:51 |只看该作者 |倒序浏览
前沿:
因为自己的Dropbox空间快满了,就想着使用自己的邀请链接,搞几个僵尸账号,给自己增加点免费空间。
弄了几个之后,就想着用脚本搞一搞,之前听 Perlchina 群中的 扶凯 推介 Mojo,就想着用来练练手。
结果自己水平太有限了,就只能用最基本的get、post实现了,汗一个。。。
选择发在CU,也是 扶凯 的建议,虽然这个脚本很简单,限于自身水平有限,一定有很多优化空间,还望各位CU不吝拍砖。

不被拍砖,永远没长进!

dropbox_register.pl
  1. ## 用于批量注册Dropbox账号
  2. #!/usr/bin/perl
  3. use strict;
  4. use warnings;

  5. use Mojo::UserAgent;

  6. use 5.010;


  7. #这个地方就填自己的邀请链接
  8. my $referral_link = 'https://www.dropbox.com/referrals/NTE2NDQzNzMwMTk?src=global9';

  9. #这个匿名哈希用于表单数据
  10. my $form = {
  11.     "t"                     => '',
  12.     "referral_code"         => '',
  13.     "src"                   => '',
  14.     "lname"                 => '',
  15.     "fname"                 => '',
  16.     "email"                 => '',
  17.     "password"              => 'perlchina',
  18.     "tos_agree"             => 'on',
  19.     "register-submit"       => '1',
  20.     "register-submit-dummy" => '%E5%88%9B%E5%BB%BA%E5%B8%90%E6%88%B7',
  21. };

  22. #这里是根据邀请链接填充 $form 中的 referral_code 和 referral_code
  23. if ($referral_link =~ m{^https://www.dropbox.com/referrals/(?<referral_code>[^?]+)\?src=(?<src>.+)$}) {
  24.     ($form->{referral_code},$form->{src}) = ($+{referral_code},$+{src});
  25. } else {
  26.     die "$referral_link is not a valid referral link!\n";
  27. }

  28. #从外部读入要注册邮件列表
  29. #根据email填充 $form 中的 email 、lname、fname
  30. #调用注册函数,完成注册操作
  31. while (<>) {
  32.     chomp;
  33.     $form->{email} = $_;
  34.     if (/^(?<lname>[^-]+)-(?<fname>[^@]+)@/) {
  35.         ($form->{lname},$form->{fname}) = ($+{lname},$+{fname});
  36.     } else {
  37.         die "$form->{email} is not a valid email address!\n";
  38.     }
  39.     say "Start to register account $form->{email} ...";
  40.     &register;
  41. }

  42. #注册函数
  43. #先访问邀请链接,拿到 $form 中需要的 t
  44. #通过post发送表单完成注册
  45. sub register {
  46.     my $ua = Mojo::UserAgent->new;
  47.     my $cookie_jar = $ua->cookie_jar;
  48.     my $res = $ua->max_redirects(5)->get($referral_link);

  49.     # Find request cookies
  50.     for my $cookie ($cookie_jar->find(Mojo::URL->new($referral_link))) {
  51.         $form->{t} = $cookie->value if $cookie->name eq "t";
  52.     }

  53.     my $tx = $ua->post($referral_link => form => $form);
  54. }
复制代码
附上注册用邮件列表文件
email.lst
  1. hhs66317-perl001@yahoo.com.cn
  2. hhs66317-perl002@yahoo.com.cn
  3. hhs66317-perl003@yahoo.com.cn
  4. hhs66317-perl004@yahoo.com.cn
  5. hhs66317-perl005@yahoo.com.cn
  6. hhs66317-perl006@yahoo.com.cn
  7. hhs66317-perl007@yahoo.com.cn
  8. hhs66317-perl008@yahoo.com.cn
  9. hhs66317-perl009@yahoo.com.cn
  10. hhs66317-perl010@yahoo.com.cn
  11. hhs66317-perl011@yahoo.com.cn
复制代码

论坛徽章:
3
技术图书徽章
日期:2013-12-14 13:31:0615-16赛季CBA联赛之八一
日期:2016-03-10 18:23:4615-16赛季CBA联赛之青岛
日期:2016-03-19 11:36:04
2 [报告]
发表于 2013-05-06 15:50 |只看该作者
表单是怎么提取出来的???

论坛徽章:
0
3 [报告]
发表于 2013-05-13 17:40 |只看该作者
小perl 发表于 2013-05-06 15:50
表单是怎么提取出来的???

表单是通过抓包拿到的!
开启抓包工具,通过浏览器正常注册,就可以在抓包工具中看到注册时,浏览器提交的表单信息

论坛徽章:
3
技术图书徽章
日期:2013-12-14 13:31:0615-16赛季CBA联赛之八一
日期:2016-03-10 18:23:4615-16赛季CBA联赛之青岛
日期:2016-03-19 11:36:04
4 [报告]
发表于 2013-05-13 18:33 |只看该作者
回复 3# hhs66317


    原来这样,我以为手动找的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP