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


Posted in PHP onOctober 09, 2006

通过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 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!"; }
?>

PHP 相关文章推荐
使用 eAccelerator加速PHP代码的方法
Sep 30 PHP
PHP mkdir()定义和用法
Jan 14 PHP
Codeigniter注册登录代码示例
Jun 12 PHP
PHP框架Swoole定时器Timer特性分析
Aug 19 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
php使用标签替换的方式生成静态页面
May 21 PHP
PHP函数func_num_args用法实例分析
Dec 07 PHP
总结PHP删除字符串最后一个字符的三种方法
Aug 30 PHP
PHP+AJAX 投票器功能
Nov 11 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 PHP
php创建类并调用的实例方法
Sep 25 PHP
PHP 对接美团大众点评团购券(门票)的开发步骤
Apr 03 PHP
搜索引擎技术核心揭密
Oct 09 #PHP
输出控制类
Oct 09 #PHP
提取HTML标签
Oct 09 #PHP
如何把PHP转成EXE文件
Oct 09 #PHP
一个查看session内容的函数
Oct 09 #PHP
一个显示天气预报的程序
Oct 09 #PHP
web方式ftp
Oct 09 #PHP
You might like
网友原创的PHP模板类代码
2008/09/07 PHP
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
php实现Mysql简易操作类
2015/10/11 PHP
一个js实现的所谓的滑动门
2007/05/23 Javascript
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
jquery.boxy插件的iframe扩展代码
2010/07/02 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
js写的方法实现上传图片之后查看大图
2014/03/05 Javascript
jquery的each方法使用示例分享
2014/03/25 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
vue.js实现条件渲染的实例代码
2017/06/22 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
[03:48]DOTA2完美大师赛主赛事第二日精彩集锦
2017/11/24 DOTA
python队列通信:rabbitMQ的使用(实例讲解)
2017/12/22 Python
python 日志增量抓取实现方法
2018/04/28 Python
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
Python单元测试简单示例
2018/07/03 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
Django 返回json数据的实现示例
2020/03/05 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
Agoda台湾官网:国内外订房2折起
2018/03/20 全球购物
Python面试题:Python里面如何生成随机数
2015/03/12 面试题
恰同学少年观后感
2015/06/08 职场文书
地震捐款简报
2015/07/21 职场文书
导游词之镜泊湖
2019/12/09 职场文书
javaScript Array api梳理
2021/03/31 Javascript
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js
MySQL脏读,幻读和不可重复读
2022/05/11 MySQL