Об IRC. Доступно и со вкусом.

Пишем отправку смс на beeline на сокетах

Данная статья рассматривает как с помощью сокетов mIRC отправить на HTTP страничку данные. Пример будет рассмотрен на отсылке смс на один из мобильных провайдеров, всем известный как beeline.
Работать наше чудо будет вот так(по желанию и при помощи прямых рук этот скрипт можно переделать под свои нужны или прикрутить к боту) /beesms 903ххххххх Привет как дела. Т.е. не нужно писать +7(8) в начале номера телефона, префикс 903 также выбран случайно, можно писать любые номера билайн.

; запоминаем в переменные номер телефона и текст смс, далее проверяем длину, если все нормально то конект к сайту билайна
alias beesms {
set -u60 %sms.nomer $1
set -u60 %sms.text $2-
if ($len(%sms.text) <= 156) { sockopen bee 217.118.84.204 80 }
else echo -a >> Сообщение содержит слишком много символов (максимум 156)
}
; кодируем сообщение
alias urlencode {
var %i = 0, %r | while (%i < $len($1-)) {
inc %i
%r = %r $+ $chr(37) $+ $base($asc($mid($1-,%i,1)),10,16,2)
}
return %r
}

; при конекте отправляем данные
on *:sockopen:bee:{
.sockwrite -n $sockname GET /servlet/send/sms/?phone= $+ $mid(%sms.nomer,4,$calc($len(%sms.nomer)-3)) $+ &number_sms=number_sms_send&prf=8 $+ $mid(%sms.nomer,1,3) $+ &termtype=G&message= $+ $urlencode(%sms.text) $+ &translit=0&x=5&y=4 HTTP/1.1
.sockwrite -n $sockname Accept: */*
.sockwrite -n $sockname Accept-Language: ru
.sockwrite -n $sockname Accept-Encoding: gzip, deflate
.sockwrite -n $sockname User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2; .NET CLR 1.1.4322)
.sockwrite -n $sockname Host: www.beeonline.ru
.sockwrite -n $sockname Connection: Keep-Alive
.sockwrite -n $sockname Cookie: JSESSIONID=apJESbvY7gBc
.sockwrite -n $sockname
}

; и обрабатываем ответ
on *:sockread:bee:{
if ($sockerr > 0) return
sockread %temp
if (Content-Length isin %temp) {
var %buf = $gettok(%temp,2,58)
if (%buf >= 99) { echo -a >> Сообщение отправить не удалось | .sockclose bee }
else { echo -a >> Сообщение отправлено | .sockclose bee }
}
}
Каких то особенный команд я тут не использовал, все что непонятно ищем в хелпе или спрашиваем в форум.
Удачи.

P.S. Спасибо, ТоММи за найденный недочот, я забыл закодировать сообщение аля url.