通过icq网关发送手机短信的php源程序
(转自linuxforum.net 原作者:liushiliang email: lsl@163.net )
//###########################################################
//
// for questions and comments
// roland (alias -=: vlieg :=-)
// icq #78354631
// mail: vlieg@atoomnet.net
//
// nb: this script wont work on free hosting pages, because of the secure mode!
// nb: you must have registered your icq# at http://web.icq.com/sms/login/ in order for this script to work
//###########################################################
//****************************************************************\//config:
$uin=""; //your icq number
$passw=""; //your icqpassword
$prefix=""; //sms prefix
$phonenumber=""; //sms phone number
$message = "hello!"; //sms message
//****************************************************************\// en: calculate the content length
$contentlength= ( 37+
strlen($uin)+
strlen($passw)
);
//****************************************************************\// openen van de inlogpagina
// en: open loginpage
$htmlreply="";
$post ="post http://web.icq.com/karma/dologin/1,,,00.html http/1.0
accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
referer: http://web.icq.com/sms/login/1,,,00.html
accept-language: nl
content-type: application/x-www-form-urlencoded
accept-encoding: gzip, deflate
user-agent: mozilla/4.0 (compatible; msie 5.0; windows 98; digext)
host: web.icq.com
content-length: ".$contentlength."
proxy-connection: keep-alive
pragma: no-cache
cookie: uin=".$uin."; sms_country=".$prefix."; karmaservice1=yes; uin=".$uin."; sms_country=".$prefix."; karmaservice1=yes
uservice=1&ulogin=".$uin."&upassword=".$passw."&x=0&y=0";
$remote = fsockopen("web.icq.com", 80, &$errno, &$errstr, 30);
global $remote;
global $post;
fputs($remote, $post);
while (!feof($remote)) { $htmlreply.=fgets($remote,120); }
//uncomment for output: echo "".htmlspecialchars($htmlreply)."";
fclose($remote);
//****************************************************************\//persoonlijke cookie uit de inlogpage halen
// en: fetch personal cookie from login page
$splited = split("\n",$htmlreply);
$cookies = $splited[3];
$cookies = str_replace("set-cookie: karmalogin=","",$cookies);
$cookies = str_replace("; path=/","",$cookies);
$cookies = str_replace("\n","",$cookies);
//uncomment voor output: echo $cookies;
if (strlen($prefix) == 2) { $contentprefix = .$prefix; } else { $contentprefix = $prefix; }
$charcount = (160-strlen($message));
$contentlength= ( 1561+
strlen($message)+
strlen($charcount)+
strlen($phonenumber)+
strlen($prefix)
);
//****************************************************************\//verzendpagina openen met de opgehaalde cookie
// en: open send page with fetched cookie
$htmlreply="";
$post =post http://web.icq.com/sms/send_history/1,,,00.html http/1.0
accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
referer: http://web.icq.com/sms/send_session/1,,,00.html?prefix=+.$prefix.&carrier=&tophone=.$phonenumber.
accept-language: nl
content-type: multipart/form-data; boundary=—————————7d12442eab4
accept-encoding: gzip, deflate
user-agent: mozilla/4.0 (compatible; msie 5.0; windows 98; digext)
host: web.icq.com
content-length: .$contentlength.
proxy-connection: keep-alive
pragma: no-cache
cookie: uin=.$uin.; sms_country=.$prefix.; karmaservice1=yes; karmalogin=.$cookies.; uin=.$uin.; sms_country=.$prefix.; karmaservice1=yes; karmalogin=.$cookies.
—————————–7d12442eab4
content-disposition: form-data; name="carrier"
—————————–7d12442eab4
content-disposition: form-data; name="prefix"
.$contentprefix.
—————————–7d12442eab4
content-disposition: form-data; name="tophone"
.$phonenumber.
—————————–7d12442eab4
content-disposition: form-data; name="usession"
1
—————————–7d12442eab4
content-disposition: form-data; name="ureply"
—————————–7d12442eab4
content-disposition: form-data; name="ulastid"
—————————–7d12442eab4
content-disposition: form-data; name="usend"
1
—————————–7d12442eab4
content-disposition: form-data; name="unextid"
—————————–7d12442eab4
content-disposition: form-data; name="uhistorycounter"
1
—————————–7d12442eab4
content-disposition: form-data; name="count"
0
—————————–7d12442eab4
content-disposition: form-data; name="usubmitcount"
0
—————————–7d12442eab4
content-disposition: form-data; name="checknewmsg"
180000
—————————–7d12442eab4
content-disposition: form-data; name="charcount"
.$charcount.
—————————–7d12442eab4
content-disposition: form-data; name="msg"
.$message.
—————————–7d12442eab4
content-disposition: form-data; name="x"
30
—————————–7d12442eab4
content-disposition: form-data; name="y"
16
—————————–7d12442eab4–
;
$remote = fsockopen("web.icq.com", 80, &$errno, &$errstr, 30);
global $remote;
global $post;
fputs($remote, $post);
while (!feof($remote)) { $htmlreply.=fgets($remote,120); }
//uncomment for output: echo "".htmlspecialchars($htmlreply)."";
fclose($remote);
//****************************************************************\// check if message is send if send moved permanently is returned
if (eregi(moved permanently,$htmlreply))
{ echo "sms message successfully sent!"; }
else
{ echo "sms not sent!"; }
?>