|
@@ -1,48 +1,43 @@
|
|
|
-from http.server import HTTPServer, BaseHTTPRequestHandler
|
|
|
+from http.server import BaseHTTPRequestHandler, HTTPServer
|
|
|
+import requests
|
|
|
+from datetime import datetime
|
|
|
|
|
|
+serverPort = 8000
|
|
|
|
|
|
-class HttpGetHandler(BaseHTTPRequestHandler):
|
|
|
- def do_GET(self):
|
|
|
- try:
|
|
|
- if self.path.endswith("/"):
|
|
|
- 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гр.</body></html>"""
|
|
|
+class Server(BaseHTTPRequestHandler):
|
|
|
|
|
|
- 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()
|
|
|
+ def do_GET(self):
|
|
|
+ if self.path.endswith("/"):
|
|
|
+ self.send_response(200)
|
|
|
+ self.send_header("Content-type", "text/html")
|
|
|
+ self.end_headers()
|
|
|
+ self.wfile.write("200_OK".encode("utf-8"))
|
|
|
+
|
|
|
+
|
|
|
+ if self.path.endswith("/info"):
|
|
|
+ self.send_response(200)
|
|
|
+ self.send_header("Content-type", "text/html")
|
|
|
+ self.end_headers()
|
|
|
+ self.wfile.write("Eugene Komarov 701".encode("utf-8"))
|
|
|
+
|
|
|
+ if self.path.endswith("/status"):
|
|
|
+ self.send_response(200)
|
|
|
+ self.send_header("Content-type", "text/html")
|
|
|
+ self.end_headers()
|
|
|
+ get = requests.get('https://api.ipify.org/')
|
|
|
+
|
|
|
+ html = f"<!doctype html><html><head><meta charset=utf-8><title>HTTP server</title></head><body>"\
|
|
|
+ f" Your ip address: {get.text}<br>"\
|
|
|
+ f"Time on server: {datetime.now()}"\
|
|
|
+ f"</body></html>"
|
|
|
+
|
|
|
+ self.wfile.write(html.encode(encoding='utf-8'))
|
|
|
+
|
|
|
+
|
|
|
+server = HTTPServer(("", serverPort), Server)
|
|
|
+print(f"Server started at http://localhost:{serverPort}")
|
|
|
+try:
|
|
|
+ server.serve_forever()
|
|
|
+except KeyboardInterrupt:
|
|
|
+ server.server_close()
|
|
|
+ print("Server stopped.")
|