Bookmark and Share
Section
imoo msn 機器人
(Publish Date: 2009-11-12 4:00am, Total Visits: 1246, Today: 1, This Week: 15, This Month: 2)

...

imoo msn 機器人

(2010/04/29 更新)


為了便於監控 Server 的狀態,我需要 Server 在更換IP時,能自動透過 msn 發個訊息給我 server 的當前IP。 msn 機器人已經有人寫好了,可在這裡免費申請使用,現在需要的就是我寫一個小程式來呼叫 msn 機器人來幫我發送訊息。

首先參照這個頁面,是 msn 機器人的運作流程,簡單提一下

(0).當你申請過後,他會寄給你一個你專屬的 msn 機器人 (就是一個網址啦),和操作這個機器人的帳號密碼。
例如這樣 http://59.120.234.84:8082/msnSDK/msn_cgi-win32

(1).取得 SPID 值,也就是 session ,有效期為六小時。
http://59.120.234.84:8082/msnSDK/msn_cgi-win32?FUNC=GETSPID&USERID=帳號&PASSWD=密碼

1 rSkrRckaS0Idaefe
↑這個就是 session也就是 SPID,時效六小時

(2).加聯絡人,你和機器人必需互加為聯絡人,才能發訊。
http://59.120.234.84:8082/msnSDK/msn_cgi-win32?FUNC=REGISTER&UIDS=MSN帳號&SESSION=剛取得的SPID

(3).發送訊息,發訊時要帶有效的 SPID 值才能發送。
http://59.120.234.84:8082/msnSDK/msn_cgi-win32?UIDS=MSN帳號&MSG=這是中文發送訊息測試&flags=0&FUNC=SENDMSG&ENCODING=UTF-8&SESSION=剛取得的SPID

以上幾點呢,都還不需要寫程式,但你必需得先用網頁的方式測試ok了,能正常收發訊息時,才接著下一步。也就是說把瀏覽器打開,貼上正確的網址,就能測試了。


開始寫 shell script

以下所寫的程式適用於 debian 4.0 , 5.0  ,ubuntu 9.04的環境



vim /home/backup/msn_send.sh

#!/bin/bash
# msn 機器人發訊

#1.取得 SPID 值
wget -q -O /tmp/session.txt -q 'http://59.120.234.84:8082/msnSDK/msn_cgi-win32?FUNC=GETSPID&USERID=帳號&PASSWD=密碼'

#2.設定 session 變數,此變數的有效期為六小時
session=`cat /tmp/session.txt|awk '{printf $2 "\n"}'`

#3.設定date與IP 變數
IP1=`/sbin/ifconfig ppp0 | grep "inet" | cut -c 21-38 |awk '{ print $1 }'`
date1=`date +%Y/%m/%d,%T`

#4.送訊息給
wget -q --delete-after "http://59.120.234.84:8082/msnSDK/msn_cgi-win32?UIDS=你的MSN帳號&MSG=$date1 IP更換:$IP1&flags=0&FUNC=SENDMSG&ENCODING=UTF-8&SESSION=$session"


以上的程式內容,需注意紅字的部份修改成你的帳密
再執行以下指令安裝
chmod 755 /home/backup/msn_send.sh
ln -s /home/backup/msn_send.sh /etc/ppp/ip-up.d/msn-send

這樣,一但 server 換IP了,它就會自動的透過 msn 來通知你。