|
@@ -0,0 +1,62 @@
|
|
|
|
+from datetime import datetime
|
|
|
|
+from http.server import HTTPServer, BaseHTTPRequestHandler
|
|
|
|
+
|
|
|
|
+import requests
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class HttpGetHandler(BaseHTTPRequestHandler):
|
|
|
|
+ def do_GET(self):
|
|
|
|
+ try:
|
|
|
|
+ if self.path.endswith("/OK"):
|
|
|
|
+ self.send_response(200)
|
|
|
|
+
|
|
|
|
+ self.send_header("Content-type", "text/html")
|
|
|
|
+ self.end_headers()
|
|
|
|
+
|
|
|
|
+ http_text = """ <html><head><meta charset= 'utf-8'>
|
|
|
|
+ <title>Простой HTTP-сервер.</title></head>
|
|
|
|
+ <body>Главная страница.</body></html>"""
|
|
|
|
+
|
|
|
|
+ self.wfile.write(http_text.encode())
|
|
|
|
+
|
|
|
|
+ if self.path.endswith("/info"):
|
|
|
|
+ self.send_response(200)
|
|
|
|
+
|
|
|
|
+ self.send_header("Content-type", "text/html")
|
|
|
|
+ self.end_headers()
|
|
|
|
+
|
|
|
|
+ http_text = """ <html><head><meta charset= 'utf-8'>
|
|
|
|
+ <title>Информация</title></head></html>
|
|
|
|
+ <body>Смаков Роман Маратович 701(3) группа </body></html>"""
|
|
|
|
+
|
|
|
|
+ self.wfile.write(http_text.encode())
|
|
|
|
+
|
|
|
|
+ if self.path.endswith("/status"):
|
|
|
|
+ self.send_response(200)
|
|
|
|
+
|
|
|
|
+ self.send_header("Content-type", "text/html")
|
|
|
|
+ self.end_headers()
|
|
|
|
+ get = requests.get(url='https://api.ipify.org/')
|
|
|
|
+
|
|
|
|
+ http_text = f' <!doctype html><html><head><meta charset= utf-8><body>IP-адрес: {get.text}<br>Время: {datetime.now()}</body></html>'
|
|
|
|
+
|
|
|
|
+ self.wfile.write(http_text.encode())
|
|
|
|
+
|
|
|
|
+ except IOError:
|
|
|
|
+ self.send_error(400, f"File not found{self.path}")
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+def main(server_class=HTTPServer, handler_class=HttpGetHandler):
|
|
|
|
+ server_address = ('localhost', 8000)
|
|
|
|
+ httpd = server_class(server_address, handler_class)
|
|
|
|
+ try:
|
|
|
|
+ print("Есть коннект")
|
|
|
|
+ httpd.serve_forever()
|
|
|
|
+
|
|
|
|
+ except KeyboardInterrupt:
|
|
|
|
+ httpd.server_close()
|
|
|
|
+ print("Сервер остановлен")
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+if __name__ == '__main__':
|
|
|
|
+ main()
|