• 16200
  • 107
  • 19
Нравится блог?
Подписывайтесь!

socket + poplib

В этой статье научимся работать с библиотекой socket и poplib
Для создания объекта сокета необходимо вызвать функцию socket, которая имеет 3 аргумента:

socket( [family[, type[, proto]]])

family = семейство
type = тип задающий семантику коммуникации
proto = протокол

Итак создаем сокет:

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
AF_INET - семейство ipv4
SOCK_STREAM - тип tcp

далее необходимо установить соединение с каким либо сервером
s.connect(('yvision.kz', 80))
функция connect имеет один аргумент, это кортеж (host, port) После соединения с сервером, мы можем передавать и принимать некоторую информацию. Рассмотрим процесс передачи и приема данных, более подробно, на примере соединения с Web-сервером (yvision.kz) и регистрации пользователя. Попробуем отправить такой пакет:
POST /ajax/register/validate.php HTTP/1.0
Content-type: application/x-www-form-urlencoded; charset=utf-8
User-Agent: Opera/9.21 (Windows NT 5.1; U;)
Host: yvision.kz
Content-Length: 0

rlogin=&email=&rpassword=&rpasswordconfirm=
Как можно догадаться это регистрация пользователя на yvision:)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('yvision.kz', 80))

login = ''
email = ''
password = ''
t = """POST /ajax/register/validate.php HTTP/1.0
Content-type: application/x-www-form-urlencoded; charset=utf-8
User-Agent: Opera/9.21 (Windows NT 5.1; U;)
Host: yvision.kz
Connection: Keep-Alive
Content-Length: %(len)d

rlogin=%(login)s&email=%(email)s&rpassword=%(password)s&rpasswordconfirm=%(password)s
""" % {'login': login, 'email': email, 'password': password, 
    'len': 43 + len(login) + len(email) + (len(password) * 2)}

s.send(t)
response = []
while True:
    line = s.recv(1024)
    if not line:
        break
    response.append(line)
print (''.join(response))

s.close()

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('yvision.kz', 80))

t = """POST /register/activate HTTP/1.0
Content-type: application/x-www-form-urlencoded; charset=utf-8
User-Agent: Opera/9.21 (Windows NT 5.1; U;)
Host: yvision.kz
Content-Length: %(len)d

rlogin=%(login)s&email=%(email)s&rpassword=%(password)s&rpasswordconfirm=%(password)s
""" % {'login': login, 'email': email, 'password': password, 
    'len': 43 + len(login) + len(email) + (len(password) * 2)}

s.send(t)
response = []
while True:
    line = s.recv(1024)
    if not line:
        break
    response.append(line)
print (''.join(response))
Ответ от сервера должен быть примерно таким:
HTTP/1.1 200 OK
Server: nginx/0.7.0
Date: Fri, 06 Jun 2008 08:23:08 GMT
Content-Type: text/html; charset=utf-8
Connection: close
X-Powered-By: PHP/5.2.6
Set-Cookie: PHPSESSID=72gljj4v2dro32fqsom31637t1; path=/; domain=.yvision.kz
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache

OK
Теперь нужно прочитать письмо которое сервер yvision.kz отправил нам для активации, ну как? Для этого нам поможет библиотека poplib.

Продолжение следует:)
p0is0n
6 июня 2008, 15:13
858

Загрузка...
Loading...

Комментарии

smerch
0
0
Похоже на спам бота. +1, Осталось только дописать авторизацию и добавление записей.
smerch
0
0
Такое ощущение что пора идти в гугле искать нормальную капчу. :))
У меня есть.
Юзаю больше года, ни одна .... не прошла пока.
От них, MultiWave, немного изменил алгоритм искажения, что бы уж на верника. Но на самом деле там вариантов просто очень много.
Ссылка: http://captcha.ru/captchas/multiwave/
eudj1n
0
0
cамописные каптчи не рулят? :)
klez
0
0
Не в тему, но весело:
>>первое существо, которое создал Бог говорило только \Hello World!\ и умирало

Оставьте свой комментарий

Спасибо за открытие блога в Yvision.kz! Чтобы убедиться в отсутствии спама, все комментарии новых пользователей проходят премодерацию. Соблюдение правил нашей блог-платформы ускорит ваш переход в категорию надежных пользователей, не нуждающихся в премодерации. Обязательно прочтите наши правила по указанной ссылке: Правила

Также можно нажать Ctrl+Enter

Популярные посты

Юрист, пришедший в школу учителем по зову души, о главной проблеме системы образования

Юрист, пришедший в школу учителем по зову души, о главной проблеме системы образования

Алматинский учитель поставил диагноз системе, частью которой является образование. Будучи успешным юристом, имевший степень МВА, он вдруг развернул траекторию своей карьеры, став обычным школьным...
Zhumanova
22 сент. 2017 / 16:26
  • 5614
  • 12
«Это будут твои большие похороны». Гуф высказался о Скриптоните и Басте

«Это будут твои большие похороны». Гуф высказался о Скриптоните и Басте

Досталось и Скриптониту, который ранее опубликовал запись, о том, что больше не будет сниматься в клипе Гуфа и Тимати. "Я тебя ни о чем больше не попрошу, казах ты мой дорогой" - высказался рэпер.
tala03
21 сент. 2017 / 15:48
  • 3786
  • 12
Почему депутат Божко хочет ограничить приток сельской молодёжи в города?

Почему депутат Божко хочет ограничить приток сельской молодёжи в города?

Вице-спикер Мажилиса Владимир Божко остановился на некоторых деталях известного конфликта в Астане возле строящегося «Абу Даби Плаза», затронув проблему «многочисленной сельской молодёжи»...
openqazaqstan
19 сент. 2017 / 13:16
  • 2711
  • 64
«Моя депрессия длилась больше двух лет». История о том, как я была готова сдаться

«Моя депрессия длилась больше двух лет». История о том, как я была готова сдаться

По данным статистики 2017 года Казахстан занимает 4 место по самоубийствам. Говорить об этом - социальное табу. Мы игнорируем разговоры о депрессиях. Потому что нам страшно.
goribaldi
18 сент. 2017 / 15:45
  • 2666
  • 87
«Папина принцесса» или «обезьяна с гранатой»? Случай в бассейне

«Папина принцесса» или «обезьяна с гранатой»? Случай в бассейне

Мужчины спокойно подчиняются логичным правилам, большинство женщин пытаются выторговать себе особые условия. Я убеждалась в этом много раз.
ValentinaVladimirska
18 сент. 2017 / 14:25
  • 2152
  • 35
Лайфхаки для путешественников. Как я не заплатила ни цента за проживание в Испании

Лайфхаки для путешественников. Как я не заплатила ни цента за проживание в Испании

Бесплатное проживание и завтрак в Испании, как прокачать иностранный язык и где поймать бесплатные ништяки в Европе. Если вы backpacker, который пересекает границу разных стран каждую неделю -...
dianaobyrne
18 сент. 2017 / 12:16
  • 2696
  • 1
Мой опыт вегетарианства: «Я ела овощи, и сама стала как овощ»

Мой опыт вегетарианства: «Я ела овощи, и сама стала как овощ»

Три года назад начитавшись-наслушавшись кое-каких знаменитых людей, я решила завязать  с абсолютно любым мясом. Как же возмущались все мои близкие, это надо было видеть, но я была непреклонна.
Bonittta
18 сент. 2017 / 14:33
  • 2081
  • 33
Путешественник был шокирован полицейским беспределом в Казахстане

Путешественник был шокирован полицейским беспределом в Казахстане

Полицейский беспредел в Казахстане осудил российский блогер и путешественник Евгений Золотухин. На своей странице он рассказал, как встретился с казахстанскими полицейскими, и как они оставили не...
tala03
18 сент. 2017 / 16:58
  • 1841
  • 13
Одним уникальным садом в столице станет больше – Корейский сад в Астане

Одним уникальным садом в столице станет больше – Корейский сад в Астане

27 сентября откроет свои двери уникальное место в Астане –  Корейский сад. Подобных общедоступных мест нет в Астане. Это видно по дизайну парка, который был разработан в Южной Корее.
iamYerlan
18 сент. 2017 / 0:51
  • 1864
  • 7