创世神域

Nothing is impossible.

@Puteulanus4年前

08/16
02:15
学习心得

Sublime Text 3 在OS X下配置Java编译

Java安装什么的不说了,主要是Sublime Text默认的Java处理方式还真就是“编译”,会弄个class文件出来但没有去执行。

找了好多教程,基本都是写个脚本替换掉sublime-build里的javac,强迫症表示这样弄实在是不舒服。

其实在sublime-build里使用shell_cmd是可以使用&&作为分隔符的,直接改配置文件就能达到编译+运行的目的。
Read More →

Sublime Text 3 在OS X下配置Java编译

@Puteulanus4年前

08/3
15:56
学习心得

色魔张大妈签到

撸了个什么值得买的每日签到程序,因为网站登陆处提示“两周内免登录”,估计cookie只能存两周,干脆每次签到使用账号密码获取一次cookie。
话说什么值得买的登陆居然是get,密码以明文参数形式传递。。。大丈夫?
代码:

  1. <?php
  2. header(“Content-type:text/html;charset=utf-8”);
  3. // 设定用户名密码
  4. $username = ;// 邮箱
  5. $password = ;// 密码
  6. // 模拟登陆获取cookie
  7. $time = time().rand(100,999);
  8. $url = ‘http://www.smzdm.com/user/login/jsonp_check?user_login=’.$username.’&user_pass=’.$password.’&rememberme=0&is_third=&is_pop=1&captcha=&_=’.$time;
  9. $ch = curl_init($url);
  10. curl_setopt($ch,CURLOPT_HEADER,1);
  11. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  12. $content = curl_exec($ch);
  13. preg_match_all(‘/Set-Cookie:(.*;)/iU’,$content,$str);
  14. curl_close($ch);
  15. foreach ($str[1] as $key) {
  16.     if (strpos($key,’deleted’) == false){
  17.         $cookie .= $key;
  18.     }
  19. }
  20. // 使用cookie签到
  21. $time = time().rand(100,999);
  22. $time2 = $time + 2;
  23. $url = ‘http://www.smzdm.com/user/qiandao/jsonp_checkin?callback=jQuery’.’11100′.rand(1000,9999).rand(1000,9999).rand(1000,9999).rand(1000,9999).’_’.$time.’&_=’.$time2;
  24. $curl = curl_init();
  25. curl_setopt($curl, CURLOPT_URL, $url);
  26. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
  27. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
  28. curl_setopt($curl, CURLOPT_COOKIE, $cookie);
  29. curl_setopt($curl, CURLOPT_TIMEOUT, 30);
  30. curl_setopt($curl, CURLOPT_HEADER, 0);
  31. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  32. $str = curl_exec($curl);
  33. if (curl_errno($curl)) {
  34.     echo ‘Errno’.curl_error($curl);
  35. }
  36. curl_close($curl);
  37. echo $str;

需要的可以在我的Github上复制
基本一个格式的AcFun签到就不单独开新文章了

色魔张大妈签到

@Puteulanus4年前

06/17
01:01
学习心得

技术宅社区(DZ论坛)自动签到

嘛,那论坛的积分不计算在线时长的,不然和我在狮城论坛一样24小时挂机就好了。。。

不过还好,签到程序不算复杂,用Firebug看了下POST信息,试着弄了个自动签到的PHP程序。

  1. <?php
  2. header(“Content-type:text/html;charset=utf-8”);
  3. // 设定cookie和网址
  4. $cookie = “”;
  5. $URL = “http://www.gn00.com/plugin.php?mobile=1”;
  6. // 获取formhash
  7. $UserAgent = ‘Mozilla/5.0 (Linux; Android 4.1; Galaxy Nexus Build/JRN84D, compatible iPhone) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19’;
  8. $str = loadcode($cookie,$URL,$UserAgent);
  9. preg_match_all(‘#formhash=(.+)&amp#sU’,$str,$m);
  10. // 设定POST信息
  11. $data = ‘formhash=’.$m[1][0].’&qdxq=yl&qdmode=3&todaysay=&fastreply=0′;
  12. $URL = ‘http://www.gn00.com/plugin.php?id=dsu_paulsign:sign&operation=qiandao&infloat=1&inajax=1′;
  13. $UserAgent = ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0’;
  14. $Referer = ‘http://www.gn00.com/plugin.php?id=dsu_paulsign:sign’;
  15. // 模拟签到并输出回执
  16. print_r(vpost($URL,$data,$cookie,$UserAgent,$Referer));
  17. function loadcode($cookie,$URL,$UserAgent)
  18. {
  19.   $ch = curl_init();//初始化curl
  20.   curl_setopt($ch,CURLOPT_COOKIE,$cookie); //设置cookie
  21.   curl_setopt($ch,CURLOPT_URL,$URL);//抓取指定网页
  22.   curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
  23.   curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER[$UserAgent]); // 模拟用户使用的浏览器
  24.   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
  25.   return curl_exec($ch);//运行curl
  26.   curl_close($ch);
  27. }
  28. function vpost($url,$data,$cookie,$UserAgent,$Referer){ // 模拟提交数据函数
  29.   $curl = curl_init(); // 启动一个CURL会话
  30.   curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
  31.   curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
  32.   curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
  33.   curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER[$UserAgent]); // 模拟用户使用的浏览器
  34.   curl_setopt($curl, CURLOPT_COOKIE, $cookie);
  35.   curl_setopt($curl, CURLOPT_REFERER,$Referer);// 设置Referer
  36.   curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
  37.   curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
  38.   curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
  39.   curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
  40.   curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
  41.   $tmpInfo = curl_exec($curl); // 执行操作
  42.   if (curl_errno($curl)) {
  43.     echo ‘Errno’.curl_error($curl);//捕抓异常
  44.   }
  45.   curl_close($curl); // 关闭CURL会话
  46.   return $tmpInfo// 返回数据
  47. }
  48. ?>

刚刚跨过12点试了一下【前一天的签到抓POST信息了】,签到成功,重复执行的话会返回今日已经签到的提示。

挂了个12小时一次的Cron,跑两天看看吧。

需要源码的朋友可以去我的Github复制。

技术宅社区(DZ论坛)自动签到

@Puteulanus5年前

05/18
11:26
学习心得

Cron修正程序

闲着无聊练练手。。

因为1分钟一次的免费Cron实在太难找,云监控频率又普遍比较低,所以写了这货。它会在前四次执行的时候记录下执行时间,计算出Cron的执行间隔,然后从第五次开始在Cron执行的间隔中依靠自身的循环对Cron进行补充。

简单来说,它会把任意频率的Cron修正到1分钟一次。

测试中使用监控宝15分钟一次和30分钟一次的监控都运行良好,执行时间记录显示执行频率接近标准的1分钟一次。

使用方法是把它改名xcron.php【其它也行啦,别和cron文件重名就好了】,和需要执行的cron.php放在一个目录下,然后把云监控的目标设置为xcron.php。

代码:

  1. <?php
  2. // 设定参数
  3. $phpfile = ‘cron.php’;// 需要执行的Cron文件名
  4. $time = 1;// 间隔分钟数
  5. // 关闭浏览器仍然执行
  6. set_time_limit(0);
  7. ignore_user_abort(true);
  8. // 读取记录
  9. $A=$B=$C=$D= 0;
  10. $F = off;
  11. include(‘cronlog.php’);
  12. if (time() – $A < 30)
  13.     exit;
  14. // 判断是否有进程在执行
  15. if ($F == on)
  16.     exit();
  17. // 判断D是否为空
  18. if ($D == 0){
  19.     $D = $C;
  20.     $C = $B;
  21.     $B = $A;
  22.     $A = time();
  23.     writelog($A,$B,$C,$D,$F);
  24.     include($phpfile);
  25.     exit();
  26. }
  27. //  启动修正
  28. $D = $C;
  29. $C = $B;
  30. $B = $A;
  31. $A = time();
  32. $E = ($A$D)/3;
  33. writelog($A,$B,$C,$D,$F);
  34. // 计算运行次数
  35. $time *= 60;
  36. $i=round($E/$time);
  37. if ($i <= 0){
  38.     include($phpfile);
  39.     exit();
  40. }
  41. if ($i > 60){
  42.     $A=$B=$C=$D= 0;
  43.     $F = off;
  44.     writelog($A,$B,$C,$D,$F);
  45.     exit();
  46. }
  47. // 防止多进程运行
  48. $F = on;
  49. writelog($A,$B,$C,$D,$F);
  50. // 循环
  51. $u=1;
  52. while($u<=$i){
  53.     include($phpfile);
  54.     if ($A+$E-time()<120){
  55.         $F = off;
  56.         writelog($A,$B,$C,$D,$F);
  57.     }
  58.     if ($A+$E-time()<60)
  59.         exit();
  60.     sleep ($time);
  61.     $u++;
  62. }
  63. exit();
  64. // 自定义函数
  65. function writelog($A,$B,$C,$D,$F){
  66.     $file = ‘<?php’.PHP_EOL.’$A = ‘.$A.’;’.PHP_EOL.’$B = ‘.$B.’;’.PHP_EOL.’$C = ‘.$C.’;’.PHP_EOL.’$D = ‘.$D.’;’.PHP_EOL.’$F = ‘.$F.’;’.PHP_EOL.’?>’;
  67.     file_put_contents(“cronlog.php”,$file);
  68. }
  69. ?>

Cron修正程序

@Puteulanus5年前

05/2
00:32
学习心得

Openshift自动安装签到助手【已失效】

[2014年8月30日]由于KK的签到项目停止维护并关闭API,tieba-sign-install2贴吧签到助手安装项目关闭。

不想老是新建日志弄得一屏幕都是签到助手,直接在旧帖更新吧。

新版安装方法大体上和旧版相同。

新版特性:

1.强大的文件管理器。

上一个版本的文件管理器就是想让搭建的朋友能不用撸钥匙、winscp,可惜效果不佳。这回换了个文件管理器,我能想到的功能它都有了,还带了一票用不着的功能。。。反正有这货应该是可以把winscp丢一边了。

2.自定义的用户信息

上个版本中,我自动生成了所有的用户信息,虽然看起来一步到位,其实也不怎么方便。这次更新的版本重新修改安装界面,只留下了用户名、密码、用户邮箱三个项。简洁的同时不影响使用体验。

3.在线数据库管理

好吧这个是作为文件管理器插件存在的【所以说那个文件管理器功能多的吐不出槽啊】,我稍微改了改,弄成了自动获取数据库信息,这样直接连接就能在线管理数据库。

4.更稳定【貌似吧】

我做了一些细节的调整,争取让它运行的更稳定。有没效果就难说了。。

5.插件风格更新

几个更新了的插件我这儿同步更新了一下,加入了三个风格。嗯我那点儿可怜的币哗哗的就没了。

新版界面预览:
Read More →

Openshift自动安装签到助手【已失效】

@Puteulanus5年前

04/10
14:54
学习心得

Openshift搭建签到助手教程【已失效】

注意,由于签到助手需要的PHP5.3+Zend环境Openshift已经停止申请了,我们需要自己搭建环境。

编译环境耗时一小时左右,请把电脑设置为不休眠、不锁定。

史上最简单搭建教程,没有之一。

在进行此教程之前,请确定你已经申请了Openshift账号,创建了命名空间,配置好了命令行工具rhc等等。

更新:太多人问我rhc怎么配置了。。实在没接触过这东西的朋友,特别是Windows的,请戳这里:Cloud9平台使用rhc教程

教程开始:

1.首先,执行

rhc app create sign diy-0.1

创建一个“Do-It-Yourself”应用,这里sign是你的应用名字,可以根据喜好更改;diy-0.1是应用类型。

2.执行
rhc cartridge-add cron-1.4 -a sign
为应用添加Cron 1.4支持,sign是你的应用名。

3.执行

rhc cartridge-add mysql-5.5 -a sign

为应用添加MySQL数据库,sign是你的应用名。注意数据库创建完成之后会显示数据库的用户名、密码和数据库名,这个要记下来,安装签到助手的时候需要。

4.执行

rhc ssh sign

连接你的应用。

5.连接成功后,执行

echo $OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT

查看数据库服务器与数据库端口,记下来。

6.执行

cd $OPENSHIFT_HOMEDIR/app-root/repo

wget http://puteulanus.u.qiniudn.com/tieba-sign-install/install.sh;chmod 777 install.sh;./install.sh

一键安装贴吧签到助手及其所需的环境。

7.等待安装完成,大概一小时左右。

8.安装完成后,访问 你的应用地址/install ,比如我的

http://sign-puteulanus.rhcloud.com/install

进入签到助手安装界面。如果进不去可以把http换成https,或者挂梯子试试。

9.在签到助手配置页面输入之前记下的数据库信息及你希望的管理员信息,完成安装。

 

Openshift搭建签到助手教程【已失效】

@Puteulanus5年前

04/9
23:43
学习心得

结果是红帽先搞定了

这两天熟悉了git的用法,一直在撸Heroku的PHP配置,可惜Zend怎么也安不上。

想换到红帽想试试。。。php.ini【Read Only】?卧槽是我打开姿势不对么?跑网上去查,意外查到一篇在红帽布置nginx+php5.2+zend+mysql的教程,才知道原来红帽还有【Do-It-Yourself】这么个神奇的分类。。。自己安装的话总不可能还不让我访问php.ini吧?

本来想自己搭环境的,在Github上搜了一下,居然有相关的项目。果断复制到自己账号下面。。。不过作者发布是17天前,项目还有bug,没法一路顺顺畅畅得撸到结尾。改了好半天发现都是一个问题,估计是部署配置文件的程序出错了,用笨办法把配置文件中的错误一个一个修正过来之后终于运行正常了。
Read More →

结果是红帽先搞定了

@Puteulanus5年前

04/6
13:25
学习心得

Heroku申请及搭建代理教程

早就想试试Heroku搭建代理了,无限流量这点实在诱人,唯一的阻力就是拖延症。。。

Heroku搭代理比GoAgent要麻烦,毕竟GAE是已经被大家玩儿坏掉了的,从当年要安装SDK同步代码到现在所有需要的东西都集成在一个压缩包里,一键即可上传服务端。。。门槛降低到了令人发指程度的后果是现在哪儿都能看到用GoAgent的,前段时间GoAgent吧被集体水表估计也是因为用得人太多已经到了需要打压的地步了。

不知不觉扯到一边去了,教程正文从这里开始。
Read More →

Heroku申请及搭建代理教程