diff --git a/.gitignore b/.gitignore index 0cafc1c..71b98ca 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.venv/ \ No newline at end of file +.venv/ +.env \ No newline at end of file diff --git a/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/.ipynb_checkpoints/Untitled-checkpoint.ipynb new file mode 100644 index 0000000..363fcab --- /dev/null +++ b/.ipynb_checkpoints/Untitled-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/.ipynb_checkpoints/pr3-checkpoint.ipynb b/.ipynb_checkpoints/pr3-checkpoint.ipynb new file mode 100644 index 0000000..363fcab --- /dev/null +++ b/.ipynb_checkpoints/pr3-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/.ipynb_checkpoints/Практика3-checkpoint.docx b/.ipynb_checkpoints/Практика3-checkpoint.docx new file mode 100644 index 0000000..e69de29 diff --git a/HTTP_requests_client.py b/HTTP_requests_client.py new file mode 100644 index 0000000..83588ae --- /dev/null +++ b/HTTP_requests_client.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/HTTP_socket_client.py b/HTTP_socket_client.py new file mode 100644 index 0000000..261f333 --- /dev/null +++ b/HTTP_socket_client.py @@ -0,0 +1,19 @@ +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, br\r\n" + "Accept: */*\r\n" + "Connection: keep-alive\r\n" + "\r\n" +) + +client.sendall(request.encode()) +response = client.recv(4096) +print(response.decode(errors="replace")) # Используем replace на случай кодировки gzip +client.close() diff --git a/TCP_client.py b/TCP_client.py new file mode 100644 index 0000000..d45decc --- /dev/null +++ b/TCP_client.py @@ -0,0 +1,9 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +client.connect(('127.0.0.1', 10000)) +client.sendall(b'hello server') +data = client.recv(1024) +client.sendall(b'EXIT') +print(f"Ответ от сервера: {data.decode()}") +client.close() diff --git a/TCP_server.py b/TCP_server.py new file mode 100644 index 0000000..7dcee91 --- /dev/null +++ b/TCP_server.py @@ -0,0 +1,19 @@ +import socket + +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +server.bind(("0.0.0.0", 10000)) +server.listen(1) +print("TCP сервер запущен") + +while True: + conn, addr = server.accept() + print(f"Подключение от {addr}") + data = conn.recv(1024) + if not data: + print("Отключение") + break + conn.sendall(data.upper()) + conn.close() + if data.upper() == b'EXIT': + print("Отключение") + break diff --git a/UDP_client.py b/UDP_client.py new file mode 100644 index 0000000..d075a64 --- /dev/null +++ b/UDP_client.py @@ -0,0 +1,7 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) +client.sendto(b'hello server', ('127.0.0.1', 20001)) +data, _ = 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..d2873af --- /dev/null +++ b/UDP_server.py @@ -0,0 +1,10 @@ +import socket + +server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) +server.bind(('0.0.0.0', 20001)) +print("UDP сервер запущен") + +while True: + data, addr = server.recvfrom(1024) + print(f"Сообщение от {addr}: {data.decode()}") + server.sendto(data.upper(), addr) \ No newline at end of file diff --git a/gitea_read.py b/gitea_read.py new file mode 100644 index 0000000..abe9301 --- /dev/null +++ b/gitea_read.py @@ -0,0 +1,18 @@ +import os +import requests +from dotenv import load_dotenv + +# Загрузка переменных окружения из .env +load_dotenv() + +# Получение токена из переменной окружения +TOKEN = os.getenv("GITEA_TOKEN") + +# Заголовок авторизации +headers = {"Authorization": f"token {TOKEN}"} + +# Запрос информации о пользователе +response = requests.get("https://git.vyatsu.ru/api/v1/user", headers=headers) + +# Вывод результата +print(response.json()) diff --git a/gitea_write.py b/gitea_write.py new file mode 100644 index 0000000..f3a1dca --- /dev/null +++ b/gitea_write.py @@ -0,0 +1,23 @@ +import os +import requests +from dotenv import load_dotenv + +load_dotenv() + +TOKEN = os.getenv("GITEA_TOKEN_WRITE") +headers = { + "Authorization": f"token {TOKEN}", + "Content-Type": "application/json" +} + +repo_data = { + "name": "my-new-repo", + "description": "Создано через API Gitea", + "private": False, + "auto_init": True +} + +response = requests.post("https://git.vyatsu.ru/api/v1/user/repos", headers=headers, json=repo_data) + +print(response.status_code) +print(response.json()) diff --git a/pr3.ipynb b/pr3.ipynb new file mode 100644 index 0000000..363fcab --- /dev/null +++ b/pr3.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/~$актика3.docx b/~$актика3.docx new file mode 100644 index 0000000..161dd3d Binary files /dev/null and b/~$актика3.docx differ diff --git a/Практика3.docx b/Практика3.docx new file mode 100644 index 0000000..b74999c Binary files /dev/null and b/Практика3.docx differ