LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 681|回复: 2

[原创]plowshare远程显示验证码的最简解决方法

[复制链接]
发表于 2012-3-18 13:40:18 | 显示全部楼层 |阅读模式
plowshare wiki 上说用x11转发,对于小小的验证码,这个太耗资源。而用http也不够简单。

下面这个方法是我中午饿着肚子写的 :yun:

远程端:(无需X)

1.安装netcat (一定要用openbsd版,gnu版没有 -q 选项)
2.打plowshare补丁
  1. --- /usr/share/plowshare/core.sh.b    2012-03-18 12:09:50.707716676 +0800
  2. +++ /usr/share/plowshare/core.sh    2012-03-18 13:18:16.041857357 +0800
  3. @@ -896,8 +896,13 @@
  4.      local PRGPID=
  5. +    METHOD_VIEW="nc"
  6. +    NC_PORT="3838"
  7.      # How to display image
  8.      case "$METHOD_VIEW" in
  9. +        nc)
  10. +          cat "$FILENAME" | nc.openbsd -q 0 -l $NC_PORT
  11. +          ;;
  12.          none)
  13.              log_debug "image: $FILENAME"
  14.              ;;
复制代码
本地端:(需要X)

1.安装netcat
2.执行脚本(改远程ip,端口要与远程端口一致):
  1. #!/bin/bash
  2. REMOTE_IP="127.0.0.1"
  3. REMOTE_PORT="3838"
  4. IMG="/tmp/captcha.img"
  5. while true;
  6. do
  7.     nc.openbsd $REMOTE_IP $REMOTE_PORT >$IMG;
  8.     sleep 2;
  9.         if [ -s $IMG ]; then display $IMG;fi
  10.         sleep 2;
  11. done
复制代码
3.ssh 连入远程服务器正常下载即可

:cool:

注:命令nc.openbsd 如果在你的发行版里是其他的命令(如nc),请手动替换
发表于 2012-3-18 14:46:55 | 显示全部楼层
不错~~呵呵~lz辛苦了~

弱弱的问一句,这个应该没考虑到下载列表吧?
x11的话,验证码的输入窗口会自动*出,这样下载列表就可以很方便的使用了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-18 16:24:02 | 显示全部楼层
Post by Mie;2162051
不错~~呵呵~lz辛苦了~

弱弱的问一句,这个应该没考虑到下载列表吧?
x11的话,验证码的输入窗口会自动*出,这样下载列表就可以很方便的使用了

谢谢指正。
我今天第一次用plowshare这东西,下载列表是并行处理不同host的吗?
把本地的执行脚本改为以下,就可以支持多个captcha显示.
  1. #!/bin/bash
  2. REMOTE_IP="127.0.0.1"
  3. REMOTE_PORT="3838"
  4. IMG_DIR="/tmp"
  5. IMG="/tmp/captcha.img"
  6. while true;
  7. do
  8.     nc.openbsd $REMOTE_IP $REMOTE_PORT >$IMG;
  9.     sleep 2;
  10.         if [ -s $IMG ];
  11.     then
  12.         imgfile=$IMG_DIR/$RANDOM$RANDOM.img
  13.         mv $IMG $imgfile
  14.         display $imgfile &> /dev/null
  15.     fi
  16.         sleep 2;
  17. done
复制代码
这个是自动*出captcha图片的。

过程是这样的:
服务器端plowdown显示captcha->服务器端netcat将图片暴露于网络等待下载(阻塞)->本地脚本自动下载captcha图片,服务端端关闭pipe,本地ssh内会开始显示"Enter captcha response (drop punctuation marks, case insensitive):"->本地端自动*出图片(非阻塞)->本地ssh内输入验证码

我在arch上装的plowshare没有自动*出输入窗口,都是命令行里输入的验证码

如果想要再舒服些,完全不用ssh,可以用cryptcat替换netcat进行通信,本地用xdialog*出窗口(列表、captcha、输入框),但服务器端和本地端都得改不少东西,不是半个小时一个小时就能写完的 -_-
回复 支持 反对

使用道具 举报

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

本版积分规则

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