通过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 相关文章推荐
PHP中Date获取时间不正确怎么办
Jun 05 PHP
php操作SVN版本服务器类代码
Nov 27 PHP
初步介绍PHP扩展开发经验分享
Sep 06 PHP
php 模拟POST提交的2种方法详解
Jun 17 PHP
解析php如何将日志写进syslog
Jun 28 PHP
ThinkPHP单字母函数(快捷方法)使用总结
Jul 23 PHP
PHP中使用asort进行中文排序失效的问题处理
Aug 18 PHP
php+mysql实现用户注册登陆的方法
Jan 03 PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 PHP
php中file_exists函数使用详解
May 08 PHP
PHP MYSQL实现登陆和模糊查询两大功能
Feb 05 PHP
PHP输出XML格式数据的方法总结
Feb 08 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中使用unset销毁变量并内存释放问题
2012/07/05 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
Laravel中间件实现原理详解
2016/10/09 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
nicejforms——美化表单不用愁
2007/02/20 Javascript
Extjs入门之动态加载树代码
2010/04/09 Javascript
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
24款非常有用的 jQuery 插件分享
2011/04/06 Javascript
这段js代码得节约你多少时间
2011/12/20 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
js实现屏幕自适应局部代码分享
2015/01/30 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
js实现的二分查找算法实例
2016/01/21 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
2016/12/26 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
VSCode插件安装完成后的配置(常用配置)
2020/08/24 Javascript
[01:02:48]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Liquid
2018/04/03 DOTA
[01:10:58]KG vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python实现可以断点续传和并发的ftp程序
2016/09/13 Python
Python编程scoketServer实现多线程同步实例代码
2018/01/29 Python
python之pexpect实现自动交互的例子
2019/07/25 Python
PYTHON EVAL的用法及注意事项解析
2019/09/06 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
基于Python的身份证验证识别和数据处理详解
2020/11/14 Python
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
Java如何读取CLOB字段
2013/10/10 面试题
秋天的雨教学反思
2014/04/27 职场文书
核心价值观演讲稿
2014/05/13 职场文书
学术诚信承诺书
2014/05/26 职场文书
工作态度恶劣检讨书
2015/05/06 职场文书