通过ICQ网关发送手机短信的PHP源程序

  通过ICQ网关发送手机短信的PHP源程序

  (转自linuxforum.net 原作者:liushiliang EMAIL:  [email protected] )

  <?

  //###########################################################

  //

  // For questions and comments

  // Roland (alias -=: Vlieg :=-)

  // icq #78354631

  // mail: [email protected]

  //

  // NB: This script won't 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!"; }

  ?>