背景

  最近自从论坛上出现了利用139手机邮箱建立股票短信查询系统,陆续有几个人咨询我相关fetion api使用,所以这里做一下记录,分享一下给大家。

使用介绍

 我使用fetion,没啥特别的技术含量,直接利用了三方的api包,也没干啥高级的事情,只是进行短信发送。

  1. 比如每天发送一下天气预报,黄金/白银价格发送给我女朋友。哄哄女生还是挺不错的哦
  2. 我自己利用fetion api主要是用于开发服务器监控,手里有近15台的服务器,时不时会发生一些事情,比如内存不足,硬盘不够了等,通过shell脚本检查+fetion短信发送,完成短信报警监控,这样一下子就轻松了。
  3. 基于fetion api基础上,包装了一个web服务,这样可以通过浏览器方式发送短信,比如部门活动,就可以群发部门同事短信

ps : 可以干的事情很多,只有你足够的有才,特别适合骗一下纯情的小女生,哈哈

正题

1.  下载fetion lib库(我使用的是ubuntu 32位的系统,所以后续都是介绍linux系统相关,如使用windows请直接访问http://www.it-adv.net/)

下载公用lib库: http://www.it-adv.net/fetion/linuxso_20101113.rar

下载fetion主程序: http://bbs.it-adv.net/attachment.php?aid=43&k=a8c8d4609367ded2ae24721b4246802a&t=1289908191

2. 环境配置

1.$ mkdir  fetion
2.$ cp -r linuxso_20101113  fetion/lib/
3.$ cp /tmp/fetion  fetion/
4.
5.创建fetion目录,包含主程序和lib库

3.  设置启动脚本

1.$ touch fetion.sh
2.$ vi fetion.sh
3.
4.# fetion.sh脚本内容
5.#!/bin/sh
6.
7.if [ $# -eq 0 ] ; then
8.  cat << EOF >&2
9.Usage: $0 mobile passwd to msgcontent
10.EOF
11.  exit 1
12.fi
13.
14.FETION_MOBILE=$1
15.FETION_PWD=$2
16.FETION_TO=$3
17.MSG="$4"
18.BASE=`dirname $0`
19.
20.export LD_LIBRARY_PATH=$BASE/lib:$LD_LIBRARY_PATH
21.$BASE/fetion --mobile=$FETION_MOBILE --pwd=$FETION_PWD --to=$FETION_TO --msg-utf8="$MSG" --msg-type=1 --exit-on-verifycode

其余的参数可见:

1.Usage:
2.    --mobile=[mobile]
3.    --sid=[sid]
4.    --pwd=[pwd]
5.    --config=[config file] *format:index mobile password
6.    --index=[index no in config file,refer to sample.conf]
7.
8.    --debug  *debug mode on
9.    --hide  *login fetion in hidden state
10.    --to=[mobile/sid]
11.    --command-path=[command file path]
12.    --robotmode
13.    --daemon(linux only)
14.    --proxy-ip(http proxy ip)
15.    --proxy-port(http proxy port)
16.    --msg-gb=[gb2312/gbk message]
17.    --msg-utf8=[utf8 message]
18.    --msg-type=[0/1/2 sms longsms smartmsg]
19.    --file-gb=[gb2312/gbk file]
20.    --file-utf8=[utf8 file]
21.    --query-cmcc-no
22.    --auto-retry
23.    --exit-on-verifycode
24.    --t3key=[http://www.tui3.com/page/smssend/]

fetion.sh 脚本作用(推荐)

运行时指定lib库,选择默认的登录方式为手机号码(sid那串不是人记的),--msg-type指定使用longsms,字符集使用utf-8。说白了就是封装一下fetion,自己使用起来更加方便而已。

 当然你也可以不行,每次你就手工敲:

1.export LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH  

或者在系统级别添加lib库,需要root权限,不推荐:

1.$ vi /etc/ld.so.conf
2.
3.# 末尾添加一行记录
4./usr/local/fetion/lib,然后把对应下载的lib库拷过去

4. 运行测试一下

注意:

1. 使用复杂的密码(数字+字母+符号),将不会弹出图形验证码。
2. 第一次使用机器人时,即使是复杂密码,也可能会弹出图形验证码,以后将不再提示。

所以密码还是搞的稍微复杂点吧。

5.  其他应用

天气预报:

使用了一个html2text的库,可以下载:wget http://archive.ubuntu.com/ubuntu/pool/main/h/html2text/html2text_1.3.2a.orig.tar.gz

1.#!/bin/sh
2.
3.# 1. set path
4.BASE_DIR=/home/admin/ljh/weather
5.HTML2TEXT_DIR=/home/admin/ljh/html2text-1.3.2a
6.
7.# 3. get weather from internet
8.wget -nv -O $BASE_DIR/weather.html http://wap.weather.com.cn/wap/weather/101210101.shtml > $BASE_DIR/log 2>&1
9.
10.# 4. format
11.echo "" > $BASE_DIR/msg
12.cat $BASE_DIR/weather.html | $HTML2TEXT_DIR/html2text | grep -A 6 '日' | sed 's/\[.*//g' | sed 's/.*]$//g' | sed 's/ //g' | grep -v '^$' | head -n 6 > $BASEE
13._DIR/msg
14.
15.# 5. send sms
16.echo `date` > $BASE_DIR/log
17.sh $BASE_DIR/fetion.sh "`cat $BASE_DIR/msg`" >> $BASE_DIR/log 2>&1
18.
19.# 6. clear env
20.rm -r $BASE_DIR/weather.html
21.#rm -r $BASE_DIR/msg

说明:调用的是http://wap.weather.com.cn 的页面,大家可以选择对应的城市url,进行天气预报发送处理。

黄金/白银 价格短信

1.#!/bin/sh
2.
3.# 1. set path
4.BASE_DIR=/home/admin/ljh/zhj
5.
6.# 3. get weather from internet
7.wget -nv -O $BASE_DIR/gold.txt http://quote.zhijinwang.cn/xml/gold.txt?$RANDOM > $BASE_DIR/log 2>&1
8.wget -nv -O $BASE_DIR/ag.txt http://quote.zhijinwang.cn/xml/ag.txt?$RANDOM > $BASE_DIR/log 2>&1
9.
10.# 4. format
11.echo "" > $BASE_DIR/msg
12.
13.TIME=`cat $BASE_DIR/gold.txt | awk -F'&' '{print $1}' | awk -F'=' '{printf "更新时间:%s",$2}'`
14.ZHJ_MAI_PRICE=`cat $BASE_DIR/gold.txt | awk -F'&' '{print $2}' | awk -F'|' '{printf "买入价:%.2f",$3}'`
15.ZHJ_MAI_CHU_PRICE=`cat $BASE_DIR/gold.txt | awk -F'&' '{print $2}' | awk -F'|' '{printf "卖出价:%.2f",$4}'`
16.ZHJ_MAX_PRICE=`cat $BASE_DIR/gold.txt | awk -F'&' '{print $2}' | awk -F'|' '{printf "最高价:%.2f",$5}'`
17.ZHJ_MIN_PRICE=`cat $BASE_DIR/gold.txt | awk -F'&' '{print $2}' | awk -F'|' '{printf "最低价:%.2f",$6}'`
18.
19.AG_MAI_PRICE=`cat $BASE_DIR/ag.txt | awk -F'&' '{print $2}' | awk -F'|' '{printf "%.2f",$3}'`
20.AG_MAI_CHU_PRICE=`cat $BASE_DIR/ag.txt | awk -F'&' '{print $2}' | awk -F'|' '{printf "%.2f",$4}'`
21.AG_MAX_PRICE=`cat $BASE_DIR/ag.txt | awk -F'&' '{print $2}' | awk -F'|' '{printf "%.2f",$5}'`
22.AG_MIN_PRICE=`cat $BASE_DIR/ag.txt | awk -F'&' '{print $2}' | awk -F'|' '{printf "%.2f",$6}'`
23.
24.echo "$TIME\n$ZHJ_MAI_PRICE,$AG_MAI_PRICE\n$ZHJ_MAI_CHU_PRICE,$AG_MAI_CHU_PRICE\n$ZHJ_MAX_PRICE,$AG_MAX_PRICE\n$ZHJ_MIN_PRICE,$AG_MIN_PRICE" > $BASE_DIR/msg
25.
26.# 5. send sms
27.echo `date` > $BASE_DIR/log
28.sh $BASE_DIR/fetion.sh "`cat $BASE_DIR/msg`" >> $BASE_DIR/log 2>&1
29.
30.# 6. clear env
31.rm -r $BASE_DIR/gold.txt
32.rm -rf $BASE_DIR/ag.txt
33.#rm -r $BASE_DIR/msg

说明:调用的是www.zhijinwang.cn的几个url,shell分析完数据后进行短信发送,然后设置一个crontab,定时发送一下。

做了个web页面:

 

tips : 给部门做了一个短信发送页面,写定具体的mobile列表,同时由部门贡献一个飞信号码,哈哈

服务器监控

1. 使用的nagios监控脚本+fetion短信报警

其中一个例子,比如机器load监控

1.$ touch monitor.sh
2.
3.#!/bin/sh
4.function check_load(){
5.        warn=$1
6.        critical=$2
7.        result=`$BASE/monitor/check_load  -w $warn,$warn,$warn -c $critical,$critical,$critical`
8.        echo $result
9.}
10.
11.function analysis() {
12.        content=$1
13.        if [ "$content" = "" ] ; then
14.                continue
15.        fi
16.        match=`echo $content | grep -oP '(OK|WARNING|CRITICAL)'`
17.        case "$match" in
18.                OK )
19.                        ;;
20.                WARNING )
21.                        sendsms "$content" ##短信发送
22.                        ;;
23.                CRITICAL )
24.                        sendsms "$content" ##短信发送
25.                        ;;
26.        esac
27.        echo "`date`:$content"
28.}
29.
30.function sendsms() {
31.        local msg=$1
32.        $BASE/fetion.sh $FETION_MOBILE $FETION_PWD $FETION_TO "$msg"
33.}
34.
35.function start(){
36.        method=$1
37.        if [ "$method" = "" ] ; then
38.                echo "you should input monitor method:"
39.        fi
40.        result=`$*` ##调用具体的监控方法获取返回值
41.        analysis "`hostname`:$result"
42.}
43.
44.start $*  ##执行入口

说明:

*  $BASE/monitor/check_load  这个是从nagions监控中拷贝出来的脚本

*  最后的运行也是通过crontab进行调度控制

1.*/5 * * * * monitor.sh check_load 8 16 1>>/tmp/monitor.log 2>&1  

其他的check_memory,check_tcp_status,check_disk等等,就大家去发挥吧

最后

  1. 其实可以做的事情还有很多,大家充分发挥一下自己的想象力吧
  2. 目前fetion能解决短信发送的问题,大家结合一下那 139邮箱的例子,就可以解决一个接受短信问题,接受短信指令后做相应的处理,发展情景无限哈。

不过现在的http://www.it-adv.net/更新速度还是蛮快的,这也可以省去我自己分析协议更新不够勤快的烦恼。

fetion发送短信介绍(比如天气预报)相关推荐

  1. IOS程序之发送短信代码实现

    转:点击打开链接 IOS程序之发送短信代码实现是本文要介绍的内容,iOS4.0新加入了MFMessageComposeViewController和MFMessageComposeViewContro ...

  2. 跳转到设置相应项-打开其他应用-打开浏览器-拨打电话-发送短信

    原文网址:http://blog.csdn.net/james_1010/article/details/8556715 一,打开设置各项 5.0+后可在代码中调用如下代码打开设置相应界面: NSUR ...

  3. ios 跳转到设置相应项-打开其他应用-打开浏览器-拨打电话-发送短信

    一,打开设置各项 5.0+后可在代码中调用如下代码打开设置相应界面: NSURL*url=[NSURL URLWithString:@"command stringI"]; [[U ...

  4. Django验证码*短信验证码之2-容联云通讯短信平台(联云通讯短信平台介绍、容联云通讯Python SDK、封装发送短信单例类)

    容联云通讯短信平台介绍 容联云通讯网址:https://www.yuntongxun.com/ 容联云管理控制台 容联云创建应用 容联云通讯Python SDK https://doc.yuntong ...

  5. 传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)

    1. 图片存储方案 1.1 介绍 在实际开发中,我们会有很多处理不同功能的服务器.例如: 应用服务器:负责部署我们的应用 数据库服务器:运行我们的数据库 文件服务器:负责存储用户上传文件的服务器 分服 ...

  6. 基于HTTP协议用JAVA实现读取天气预报和twilio发送短信(无需审核)

    文章目录 一.读取指定城市的天气预报 二.twilio平台java编程实现发送短信 三.总结 四.参考 一.读取指定城市的天气预报 代码如下: package network;import java. ...

  7. php免费利用飞信发送验证码,php通过飞信发送短信

    php发送短信有两个方法一个就是通过审请的接口接入网站,之后就可以使用啦. 但是上面的这一种是收费的. 下面给大家介绍一种免费的,使用飞信发送的方法,这个发送短信的类是一位高手写出来的. /** * ...

  8. python邮件定时发送短信_Python趣味编程:如何定时发短信给Ta讲笑话

    原标题:Python趣味编程:如何定时发短信给Ta讲笑话 人一无聊,就会想:反正每天都要给Ta问候一声早安,为何不同时讲个笑话呢?如果能写个程序每天早上定时给Ta发一条问候早安同时讲一个笑话的短信该多 ...

  9. C# 通过串口发送短信

    手机短信群发作为企业日常通知,公告,天气预报等信息的一个发布平台,在于成本低,操作方便等诸多特点,成为企业通讯之首选.本文介绍短信的编码方式,AT指令以及用C#实现串口通讯的方法. 前言目前,发送短信 ...

最新文章

  1. SBB:不同植被土壤中细菌古菌的群落分布模式比较
  2. LeetCode Intersection of Two Linked Lists
  3. MySQL中的find_in_set
  4. 通过data目录恢复数据库数据(mysql5.7.22)
  5. vim trickies
  6. AD19 add pins to nets错误_NGINX 502 Bad Gateway错误疑难解答
  7. [Ubuntu] 安装字体
  8. OpenCV2:Mat属性type,depth,step
  9. java 身份证地址提取籍贯_二代身份证信息提取方案的选择?
  10. 三核浏览器Lunascape新版发布
  11. 转载 java基础题(面试必知)
  12. 为什么要用二次验证码(谷歌验证)?
  13. unzip:unzip解压文件到指定目录
  14. 停止抱怨的力量是多么强大-记录感受
  15. OpenGL超级宝典(第7版)之第十二章管线监控
  16. AE基本知识【影视后期制作课题】
  17. 匹夫细说Unity3D(一)——移动平台动态读取外部文件全解析
  18. C语言实现输出1900—2000年中是闰年的年份
  19. 用python编写一个远程控制程序
  20. Element-UI中调用tinymce6实现本地化加载,并解决提示:This domain is not registered with TinyMCE Cloud,省去api-key

热门文章

  1. 人工智能学习笔记20221008
  2. INSERT INTO IF NOT EXISTS问题
  3. UE插件AFC和GSHand的组合使用
  4. 利用js制作一个简单的QQ农场小游戏
  5. 2019年手机会出现什么?四镜头、屏幕挖孔、折迭手机
  6. Python中numpy.ix_ 的用法
  7. LEADTOOLS V20,医学影像浏览器中3D体积渲染控件
  8. 时间紧资金少人才缺?8位产业专家带你破局AI智能化升级
  9. 超级电容TL431方案全讲解
  10. 什么是好的技术氛围?