From 16a47bab6ab3e08d6e0d3fe7a06028dcf38a7351 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D0=BE=D1=80=D0=BE=D1=87=D0=BD=D1=8B=D0=B9=20=D0=93?= =?UTF-8?q?=D1=80=D0=B8=D0=B3=D0=BE=D1=80=D0=B8=D0=B9?= Date: Tue, 13 May 2025 21:21:45 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D1=81=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D1=83=D1=81=D0=BF=D0=B5=D1=88=D0=BD=D0=BE?= =?UTF-8?q?=20=D0=B2=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + Reqtoken.py | 14 ++++++++++++++ TCP2client.py | 10 ++++++++++ TCP2server.py | 24 ++++++++++++++++++++++++ TCPlikereq.py | 27 +++++++++++++++++++++++++++ TCPreqvyatsu.py | 4 ++++ TCPvyatsu.py | 9 +++++++++ UDP2client.py | 11 +++++++++++ UDP2server.py | 20 ++++++++++++++++++++ client.py | 12 ++++++++++++ createrepo.py | 23 +++++++++++++++++++++++ server.py | 28 ++++++++++++++++++++++++++++ updclient.py | 11 +++++++++++ updserver.py | 22 ++++++++++++++++++++++ 14 files changed, 216 insertions(+) create mode 100644 Reqtoken.py create mode 100644 TCP2client.py create mode 100644 TCP2server.py create mode 100644 TCPlikereq.py create mode 100644 TCPreqvyatsu.py create mode 100644 TCPvyatsu.py create mode 100644 UDP2client.py create mode 100644 UDP2server.py create mode 100644 client.py create mode 100644 createrepo.py create mode 100644 server.py create mode 100644 updclient.py create mode 100644 updserver.py diff --git a/.gitignore b/.gitignore index 5ceb386..2d19ec7 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ venv +.env \ No newline at end of file diff --git a/Reqtoken.py b/Reqtoken.py new file mode 100644 index 0000000..ce1469a --- /dev/null +++ b/Reqtoken.py @@ -0,0 +1,14 @@ +import requests +import os +from dotenv import load_dotenv + +load_dotenv() # Загружаем переменные окружения из .env + +TOKEN = os.getenv("GITEA_TOKEN") +if not TOKEN: + raise Exception("Токен не найден в переменных окружения!") + +headers = {"Authorization": f"token {TOKEN}"} +response = requests.get("https://git.vyatsu.ru/api/v1/user", headers=headers) + +print(response.json()) \ No newline at end of file diff --git a/TCP2client.py b/TCP2client.py new file mode 100644 index 0000000..2abc787 --- /dev/null +++ b/TCP2client.py @@ -0,0 +1,10 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +client.connect(('127.0.0.1', 11000)) + +message = input("Введите сообщение: ") +client.sendall(message.encode()) +data = client.recv(1024) +print(f"Ответ от сервера: {data.decode()}") +client.close() \ No newline at end of file diff --git a/TCP2server.py b/TCP2server.py new file mode 100644 index 0000000..5864920 --- /dev/null +++ b/TCP2server.py @@ -0,0 +1,24 @@ +import socket + +def process_text(text): + return f"<<< {text.upper()} >>>" + +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +server.bind(("0.0.0.0", 11000)) +server.listen(1) +print("TCP сервер запущен на порту 11000") + +while True: + conn, addr = server.accept() + print(f"Подключение от {addr}") + data = conn.recv(1024) + if not data: + break + text = data.decode() + response = process_text(text) + print(f"Получено: {text} | Ответ: {response}") + conn.sendall(response.encode()) + conn.close() + if text.upper() == 'EXIT': + print("Сервер завершает работу.") + break \ No newline at end of file diff --git a/TCPlikereq.py b/TCPlikereq.py new file mode 100644 index 0000000..975bb04 --- /dev/null +++ b/TCPlikereq.py @@ -0,0 +1,27 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +client.connect(('vyatsu.ru', 80)) + +request = ( + "GET / HTTP/1.1\r\n" + "Host: vyatsu.ru\r\n" + "User-Agent: python-requests/2.31.0\r\n" + "Accept-Encoding: gzip, deflate\r\n" + "Accept: */*\r\n" + "Connection: close\r\n" + "\r\n" +) + +client.sendall(request.encode()) + +response = b"" +while True: + part = client.recv(4096) + if not part: + break + response += part + +print(response.decode(errors='ignore')) # 'ignore' — на случай gzip/некорректных символов + +client.close() \ No newline at end of file diff --git a/TCPreqvyatsu.py b/TCPreqvyatsu.py new file mode 100644 index 0000000..83588ae --- /dev/null +++ b/TCPreqvyatsu.py @@ -0,0 +1,4 @@ +import requests + +response = requests.get("http://vyatsu.ru") +print(response.text[:500]) \ No newline at end of file diff --git a/TCPvyatsu.py b/TCPvyatsu.py new file mode 100644 index 0000000..4c1fa7e --- /dev/null +++ b/TCPvyatsu.py @@ -0,0 +1,9 @@ +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/UDP2client.py b/UDP2client.py new file mode 100644 index 0000000..8f26bc7 --- /dev/null +++ b/UDP2client.py @@ -0,0 +1,11 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + +message = input("Введите сообщение: ") +client.sendto(message.encode(), ('127.0.0.1', 11001)) + +data, _ = client.recvfrom(1024) +print(f"Ответ от сервера: {data.decode()}") + +client.close() \ No newline at end of file diff --git a/UDP2server.py b/UDP2server.py new file mode 100644 index 0000000..09dc236 --- /dev/null +++ b/UDP2server.py @@ -0,0 +1,20 @@ +import socket + +def process_text(text): + return f"[[[{text.lower()}]]]" + +server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) +server.bind(('0.0.0.0', 11001)) +print("UDP сервер запущен на порту 11001") + +while True: + data, addr = server.recvfrom(1024) + text = data.decode() + print(f"Сообщение от {addr}: {text}") + response = process_text(text) + server.sendto(response.encode(), addr) + if text.upper() == 'EXIT': + print("Сервер завершает работу.") + break + +server.close() \ No newline at end of file diff --git a/client.py b/client.py new file mode 100644 index 0000000..4024a16 --- /dev/null +++ b/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()) + +data = client.recv(1024) +print(f"Ответ от сервера: {data.decode()}") + +client.close() \ No newline at end of file diff --git a/createrepo.py b/createrepo.py new file mode 100644 index 0000000..cbe0241 --- /dev/null +++ b/createrepo.py @@ -0,0 +1,23 @@ +import requests +import os +from dotenv import load_dotenv + +load_dotenv() + +TOKEN = os.getenv("GITEA_WRITE_TOKEN") +if not TOKEN: + raise Exception("Нет токена в .env") + +headers = {"Authorization": f"token {TOKEN}"} + +data = { + "name": "exd3week", + "description": "Публичный репозиторий через API", + "private": False, + "auto_init": True +} + +response = requests.post("https://git.vyatsu.ru/api/v1/user/repos", json=data, headers=headers) + +print("Status code:", response.status_code) +print("Text:", response.text) \ No newline at end of file diff --git a/server.py b/server.py new file mode 100644 index 0000000..f49d377 --- /dev/null +++ b/server.py @@ -0,0 +1,28 @@ +import socket + +def mirror_text(text): + return text[::-1] + +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 + + text = data.decode() + mirrored = mirror_text(text) + print(f"Получено: {text} | Отправляем: {mirrored}") + conn.sendall(mirrored.encode()) + + conn.close() + + if text.upper() == 'EXIT': + print("Сервер завершает работу.") + break \ No newline at end of file diff --git a/updclient.py b/updclient.py new file mode 100644 index 0000000..70b5604 --- /dev/null +++ b/updclient.py @@ -0,0 +1,11 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + +message = input("Введите строку для отправки на сервер: ") +client.sendto(message.encode(), ('127.0.0.1', 10001)) + +data, _ = client.recvfrom(1024) +print(f"Ответ от сервера: {data.decode()}") + +client.close() \ No newline at end of file diff --git a/updserver.py b/updserver.py new file mode 100644 index 0000000..6319d40 --- /dev/null +++ b/updserver.py @@ -0,0 +1,22 @@ +import socket + +def mirror_text(text): + return text[::-1] + +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) + text = data.decode() + print(f"Сообщение от {addr}: {text}") + + mirrored = mirror_text(text) + server.sendto(mirrored.encode(), addr) + + if text.upper() == 'EXIT': + print("Сервер завершает работу.") + break + +server.close() \ No newline at end of file