Что нового
Теневой форум

Добро пожаловать на FSELL- крупнейший теневой форум. У нас Вы сможете найти огромное количество заработка в интернете, купить паспорт, ксиву, оружие, куча многих товаров и услуг, в виде пробива, взлома, нанять киллера. Все это Вы найдете на нашем форуме! Не пренебрегайте услугами Гарант-Сервиса, это убережет Вас от мошенников.

Продолжать?


  • Всего проголосовало
    25

TERRIBLECY

Доверенный продавец
Продавец
Продвинутый
Сетевое программирование на Python.



TCP клиент
Код:
import socket

target_host = "www.google.com"
target_port = 80

# create a socket object
➊ client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# connect the client
➋ client.connect((target_host,target_port))

# send some data
➌ client.send("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")

# receive some data
➍ response = client.recv(4096)

print response
Сначала мы создаем объект сокета при помощи параметров AF_INET и SOCK_STREAM ➊. Параметр AF_INET указывает, что мы будем использовать стандартный IPv4 адрес или имя хоста, а SOCK_STREAM указывает, что это будет TCP клиент. Затем мы соединяем клиент с сервером ➋ и посылаем некоторые данные ➌. Последний шаг — получение данных обратно и распечатка ответа ➍. Это простейшая форма TCP клиента, но именно ее вы будете писать чаще всего.

В сниппете кода выше мы делаем серьезные предположения о сокетах, о которых вам совершенно определенно нужно знать. Первое предположение заключается в том, что наше соединение всегда будет удачным, а второе — сервер всегда ожидает, что мы первые будет посылать данные (в отличие от серверов, которые первыми посылают данные и ждут вашего ответа). Наше третье предположение заключается в том, что сервер всегда всегда будет отсылать данные обратно своевременно. Мы сделали эти предположения для упрощения задачи.



UDP клиент

UDP клиент в Python не сильно отличается от TCP клиента, и нам нужно внести всего два небольших изменения, чтобы отправить пакеты в форме UDP.
Код:
import socket

target_host = "127.0.0.1"
target_port = 80

# create a socket object
➊ client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# send some data
➋ client.sendto("AAABBBCCC",(target_host,target_port))

# receive some data
➌ data, addr = client.recvfrom(4096)

print data
Как видите, мы изменили тип сокета на SOCK_DGRAM ➊, создавая объект сокета. Следующий шаг — вызвать sendto() ➋, передать данные и отправить на нужный вам сервер. Так как UDP — это протокол без установления соединения, то мы не можем заранее вызвать connect(). Последний шаг - recvfrom() ➌. Он нужен, чтобы вернуть обратно данные UDP. Вы также заметите, что он возвращает как данные, так и детали удаленного хоста и порта.



TCP сервер

Создание TCP сервера на языке Python — так же просто, как и создание клиента. Возможно, вы захотите использовать свой собственный TCP сервер для написания командных оболочек или создания прокси (и тем, и другим мы займемся позже). Давайте начнем с создания стандартного многопоточного сервера.
Код:
import socket
import threading

bind_ip = "0.0.0.0"
bind_port = 9999

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

➊ server.bind((bind_ip,bind_port))

➋ server.listen(5)

print "[*] Listening on %s:%d" % (bind_ip,bind_port)

# this is our client-handling thread
➌ def handle_client(client_socket):

     # print out what the client sends
     request = client_socket.recv(1024)

      print "[*] Received: %s" % request

      # send back a packet
      client_socket.send("ACK!")

      client_socket.close()

while True:

➍     client,addr = server.accept()

     print "[*] Accepted connection from: %s:%d" % (addr[0],addr[1])


     # spin up our client thread to handle incoming data
➎    client_handler = threading.Thread(target=handle_client,args=(client,))
     client_handler.start()
Для начала мы передаем IP-адрес и порт, который сервер будет прослушивать ➊. Затем мы даем серверу задание начать прослушивание ➋ с максимальной очередью (backlog) соединений, заданной на 5. Затем мы запускаем главный цикл, где сервер будет ждать входящие соединения. Когда происходит соединение клиента ➍, мы получаем сокет клиента в переменной client и детали удаленного соединения в переменной addr. Затем мы создаем новый объект потока, который указывает на нашу функцию handle_client и передаем объект сокета как аргумент. Далее мы запускаем поток, чтобы установить соединение клиента ➎, и наш главный цикл готов к обработке другого входящего соединения. Функция handle_client ➌ выполняет recv() и затем отправляет простое сообщение обратно клиенту.

Если вы используете TCP клиент, который мы создали ранее, то вы можете передать тестовые пакеты на сервер и сможете увидеть следующее:
Код:
[*] Listening on 0.0.0.0:9999[*] Accepted connection from: 127.0.0.1:62512[*] Received: ABCDEF
 
Последнее редактирование:

TERRIBLECY

Доверенный продавец
Продавец
Продвинутый
Как просили с упоров в хакинг. А значит те кто пишут на питоне 1 день или уделяют 10 минут в день проходят мимо, так как дальше только сложнее всё будет.
 

Чёрнокнижник

Администратор
Команда форума
uwdzUj5.png
 

DEM0N

Котик
Легенда
1 урок всегда начинается с программы, которая выведет "Hello World!" на экран :D
 

TERRIBLECY

Доверенный продавец
Продавец
Продвинутый
1 урок всегда начинается с программы, которая выведет "Hello World!" на экран :D
Просили хакинг, а не обучение основам python)))
Но если хотите могу параллельно и такие уроки писать)
 

PE4EHbKA

New Member
Как просили с упоров в хакинг. А значит те кто пишут на питоне 1 день или уделяют 10 минут в день проходят мимо, так как дальше только сложнее всё будет.
Не очень кнш уроки т к просто ты написал код а не объяснил за что все эти команды отвечают
 

morozko305

Теперь просто мету дворы xD
Продвинутый
Годно. За такие курсы кеш просят. А тут бесплатно.
 
Вверх