From 8f4878850564e2613c63e71649f865ff404bdfa1 Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 26 Apr 2026 15:06:36 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B2=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=202=20?= =?UTF-8?q?=D1=83=D1=87=D0=B5=D0=B1=D0=BD=D0=BE=D0=B9=20=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=BA=D1=82=D0=B8=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 7 +++++++ gitea_api.py | 38 ++++++++++++++++++++++++++++++++++++++ http_requests.py | 5 +++++ http_socket.py | 11 +++++++++++ tcp_client.py | 12 ++++++++++++ tcp_server.py | 28 ++++++++++++++++++++++++++++ udp_client.py | 10 ++++++++++ udp_server.py | 12 ++++++++++++ 8 files changed, 123 insertions(+) create mode 100644 .gitignore create mode 100644 gitea_api.py create mode 100644 http_requests.py create mode 100644 http_socket.py create mode 100644 tcp_client.py create mode 100644 tcp_server.py create mode 100644 udp_client.py create mode 100644 udp_server.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5707ccd --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +venv/ +__pycache__/ +*.pyc +.env +.vscode/ +*.code-workspace +*.log \ No newline at end of file diff --git a/gitea_api.py b/gitea_api.py new file mode 100644 index 0000000..068adde --- /dev/null +++ b/gitea_api.py @@ -0,0 +1,38 @@ +import os +import requests +from dotenv import load_dotenv + +load_dotenv() + +TOKEN = os.getenv("GITEA_TOKEN") + +if not TOKEN: + print("Ошибка: GITEA_TOKEN не найден в файле .env") + exit() + +headers = {"Authorization": f"token {TOKEN}"} + +print("Чтение информации о пользователе") +response = requests.get("https://git.vyatsu.ru/api/v1/user", headers=headers) + +print(f"Статус код: {response.status_code}") + +if response.status_code == 200: + user = response.json() + print(f"Логин: {user.get('login')}") + print(f"Email: {user.get('email')}") +else: + print(f"Ошибка: {response.text}") + +print("\nСоздание репозитория") +repo_data = {"name": "network-lab-3", "private": False} +response = requests.post("https://git.vyatsu.ru/api/v1/user/repos", headers=headers, json=repo_data) + +print(f"Статус код: {response.status_code}") + +if response.status_code == 201: + print(f"Репозиторий создан: {response.json().get('html_url')}") +elif response.status_code == 422: + print("Репозиторий уже существует") +else: + print(f"Ошибка: {response.text}") \ No newline at end of file diff --git a/http_requests.py b/http_requests.py new file mode 100644 index 0000000..3e56578 --- /dev/null +++ b/http_requests.py @@ -0,0 +1,5 @@ +import requests + +response = requests.get("http://vyatsu.ru") +print(response.status_code) +print(response.text[:500]) \ No newline at end of file diff --git a/http_socket.py b/http_socket.py new file mode 100644 index 0000000..2898a01 --- /dev/null +++ b/http_socket.py @@ -0,0 +1,11 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +client.connect(('vyatsu.ru', 80)) +request = "GET / HTTP/1.1\r\nHost: vyatsu.ru\r\n\r\n" + +client.sendall(request.encode()) +response = client.recv(4096) +print(response.decode()) + +client.close() \ No newline at end of file diff --git a/tcp_client.py b/tcp_client.py new file mode 100644 index 0000000..4068072 --- /dev/null +++ b/tcp_client.py @@ -0,0 +1,12 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +client.connect(('127.0.0.1', 10000)) + +message = input("Введите сообщение: ") +client.sendall(message.encode('utf-8')) + +data = client.recv(1024) +print(f"Ответ от сервера: {data.decode('utf-8')}") + +client.close() \ No newline at end of file diff --git a/tcp_server.py b/tcp_server.py new file mode 100644 index 0000000..3ad5619 --- /dev/null +++ b/tcp_server.py @@ -0,0 +1,28 @@ +import socket + +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +server.bind(("0.0.0.0", 10000)) +server.listen(1) +print("TCP сервер запущен на порту 10000") + +while True: + conn, addr = server.accept() + print(f"Подключение от {addr}") + + data = conn.recv(1024) + if not data: + break + + received_text = data.decode('utf-8') + print(f"Получено: {received_text}") + + response_text = received_text.upper() + conn.sendall(response_text.encode('utf-8')) + + conn.close() + + if response_text == 'EXIT': + print("Завершаем сервер") + break + +server.close() \ No newline at end of file diff --git a/udp_client.py b/udp_client.py new file mode 100644 index 0000000..72c798e --- /dev/null +++ b/udp_client.py @@ -0,0 +1,10 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + +message = input("Введите сообщение: ") +client.sendto(message.encode(), ('127.0.0.1', 10001)) + +data, addr = client.recvfrom(1024) +print(f"Ответ от сервера: {data.decode()}") +client.close() \ No newline at end of file diff --git a/udp_server.py b/udp_server.py new file mode 100644 index 0000000..bd2b723 --- /dev/null +++ b/udp_server.py @@ -0,0 +1,12 @@ +import socket + +server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) +server.bind(('0.0.0.0', 10001)) +print("UDP сервер запущен на порту 10001") + +while True: + data, addr = server.recvfrom(1024) + print(f"Сообщение от {addr}: {data.decode()}") + + modified = data.decode()[::-1].encode() + server.sendto(modified, addr) \ No newline at end of file