Python Simple Socket - Получить URL из запроса клиента - PullRequest
0 голосов
/ 06 ноября 2018

Для школьного задания мне необходимо заполнить пробелы в приложении Python 3, которое действует как простой прокси-сервер. Я обязан использовать только библиотеку сокетов.

Мой вопрос заключается в том, что меня не учили, как получить URL-адрес запроса от клиента, и я не могу найти информацию в Интернете, чтобы помочь мне. Вот код на данный момент (я включил их, чтобы привести пример стиля Python, который мне нужно было написать):

from socket import socket, gethostname, AF_INET, SOCK_STREAM
import sys

if len(sys.argv) <= 1:
    print ("Usage : 'python ProxyServer.py server_ip'\nserver_ip : It is the IP Address Of Proxy Server")
    sys.exit(2)

# Create a server socket, bind it to a port and start listening 
tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(('localhost', 8888))
tcpSerSock.listen(5)

while 1: 

    # Start receiving data from the client 
    print ('Ready to serve...' )

    tcpCliSock, addr = tcpSerSock.accept()
    print ('Received a connection from:', addr)

    message = addr

    print (message.value)

    # Extract the filename from the given message     
    filename = message.split()[1].partition("/")[2] 
    print (filename)

Когда я иду в очередь на страницу, я перехожу к 'localhost: 8080 / www.google.com /'.

У меня вопрос, как в Python я смогу прочитать на «www.google.com» как строку из URL в очереди?

1 Ответ

0 голосов
/ 06 ноября 2018

Это был ответ, который я нашел.

tcpCliSock.recv(4096)

^ Вышеприведенное возвращает объект байтов, который содержит полный запрос. При преобразовании в строку и разделении по пробелам сегмент запроса www.google.com находится в позиции [1].

Вне головы, получение URL будет выглядеть так:

test = message.split()[1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...