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

东坡下载 2010年10月14日 10:51:41

      <?
      //###########################################################
      // For questions and comments
      // Roland (alias -=: Vlieg :=-)
      // icq #78354631
      // mail: vlieg@atoomnet.net
      //
      // 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!"; }
      ?>