Получить IPv4-адрес посетителей в http.server.BaseHTTPRequestHandler hosted - PullRequest
0 голосов
/ 28 апреля 2020

При размещении простого http.server.BaseHTTPRequestHandler сервера с Python я хотел бы получить IP-адрес любого, кто обращается к моему серверу. Я оглянулся и нашел решения в Java и C, но ничего в Python. Когда я пытался перевести решения на любой язык, они не работали. GetIp из Java не был частью BaseHTTPRequestHandler класса, равно как и UserHostName из C. Я также не служу из Flask, bottle или любой другой обслуживающей платформы, поэтому я не могу использовать ни один из их методов. Как бы я это сделал?

1 Ответ

0 голосов
/ 28 апреля 2020

Существует подкласс request, который является частью класса BaseHTTPRequestHandler, и внутри него находятся функции, которые сообщают вам IP-адреса вашего сервера и компьютеров, обращающихся к нему. Добавьте это к вашей do_GET функции: self.request.getpeername()

Это вернет кортеж в форме:

(their ipv4 address, their port)
...