Как получить публичные и приватные IP-адреса, используя флакон Python при развертывании кода? - PullRequest
2 голосов
/ 01 июля 2019

Я создал колбу API.Кто бы ни посещал этот API, я могу отслеживать его IP-адрес.В моей ситуации я могу отслеживать локальный IP-адрес из любой системы, которая подключена к моему интернету, где я запускал код локально.Я развернул код при запуске API.Он может отслеживать публичный адрес.Я хочу, чтобы после развертывания отслеживались как общедоступные, так и локальные IP-адреса.

Есть ли способ отследить локальный адрес вместе с общедоступным адресом даже после развертывания с использованием фляги и python?

 from netifaces import interfaces, ifaddresses, AF_INET
 for ifaceName in interfaces():
       addresses = [i['addr'] for i in 
       ifaddresses(ifaceName).setdefault(AF_INET, [{'addr':'No IP addr'}] )]
       print '%s: %s' % (ifaceName, ', '.join(addresses))

 import socket    
 hostname = socket.gethostname()    
 IPAddr = socket.gethostbyname(hostname)   

Я попробовал все это, но безрезультатно, не смог получить желаемый результат

@app.route("/get_my_ip", methods=["GET"])
def get_my_ip():
      return jsonify({'ip': request.environ['REMOTE_ADDR']}), 200

Result:10.0.0.1

После развертывания кода я могу получить только публичный IP.Мне нужно отслеживать локальный IP-адрес вместе с общедоступным IP-адресом.

Например: если 10 различных систем, подключенных к одному Интернету, использовали развернутый API, я должен получить 10 разных IP-адресов, но я получаю общедоступный IP-адрес, которыйявляется общим для всех.Но я ожидаю, что и публичный IP, и локальный UP, например, 106.89.78.90 (публичный IP) 10.0.0.1 (приватный IP) из одной системы, затем 106.89.78.90/10.0.0.2 из другой системы и т. Д.

1 Ответ

0 голосов
/ 01 июля 2019

Вам необходимо настроить свой сервер (nginx / apache / caddy и т. Д.), Чтобы он добавлял специальный заголовок X-Forwarded-For с фактическими IP-адресами к каждому запросу.

Связанный: Получить IP-адрес посетителей, использующих Flask для Python

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...