通过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 相关文章推荐
ZF等常用php框架中存在的问题
Jan 10 PHP
在php和MySql中计算时间差的方法
Apr 22 PHP
PHP数组实例总结与说明
Aug 23 PHP
php连接mssql数据库的几种方法
Feb 21 PHP
php使浏览器直接下载pdf文件的方法
Nov 15 PHP
php的curl封装类用法实例
Nov 07 PHP
php中get_cfg_var()和ini_get()的用法及区别
Mar 04 PHP
Yii2中添加全局函数的方法分析
May 04 PHP
老生常谈PHP面向对象之标识映射
Jun 21 PHP
Laravel5.1框架注册中间件的三种场景详解
Jul 09 PHP
laravel多条件查询方法(and,or嵌套查询)
Oct 09 PHP
laravel框架中间件简单使用方法示例
Jan 25 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 数组和字符串互相转换实现方法
2013/03/26 PHP
PHP多进程编程实例
2014/10/15 PHP
PHP中iconv函数知识汇总
2015/07/02 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
用脚本调用样式的几种方法
2006/12/09 Javascript
jquery中常用的SET和GET
2009/01/13 Javascript
基于jquery的大众点评,分类导航实现代码
2011/08/23 Javascript
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
javascript检查浏览器是否已经启用XX功能
2015/07/10 Javascript
详解JavaScript中this的指向问题
2017/01/20 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
javascript自执行函数
2017/02/10 Javascript
JS获取字符对应的ASCII码实例
2017/09/10 Javascript
vue+node实现图片上传及预览的示例方法
2018/11/22 Javascript
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
python的正则表达式re模块的常用方法
2013/03/09 Python
pyside写ui界面入门示例
2014/01/22 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
深入浅析python 中的self和cls的区别
2020/06/20 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
python文件编写好后如何实践
2020/07/07 Python
python实现简单的五子棋游戏
2020/09/01 Python
python实现经纬度采样的示例代码
2020/12/10 Python
2014年转正工作总结
2014/11/08 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
公务员考察材料范文
2014/12/23 职场文书
培训师岗位职责
2015/02/14 职场文书
2016年10月份红领巾广播稿
2015/12/21 职场文书
基于Redis位图实现用户签到功能
2021/05/08 Redis
解析原生JS getComputedStyle
2021/05/25 Javascript
升级 Win11 还是坚守 Win10?微软 Win11 新系统缺失功能大盘点
2022/04/05 数码科技