Как отправить в прямом эфире запрос веб-камеры на сервер?

Этот метод возвращает «первичный» IP-адрес в локальном поле (тот, у которого есть маршрут по умолчанию).

  • НЕ требуется маршрутизируемый сетевой доступ или любое соединение вообще.
  • Работает, даже если все интерфейсы отключены от сети.
  • НЕ нужно или даже пытаться получить в другом месте .
  • Работает с NAT, публичный, частный, внешний и внутренний IP
  • Pure Python 2 (или 3) без внешних зависимостей.
  • Работает в Linux, Windows и OSX.

Python 2 или 3:

import socket
def get_ip():
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    try:
        # doesn't even have to be reachable
        s.connect(('10.255.255.255', 1))
        IP = s.getsockname()[0]
    except:
        IP = '127.0.0.1'
    finally:
        s.close()
    return IP

Это возвращает единственный IP-адрес, который является основным (тот, у которого есть маршрут по умолчанию). Если вам нужно, все IP-адреса, привязанные ко всем интерфейсам (включая localhost и т. Д.), См. В этом ответе .

Если вы находитесь за брандмауэром NAT, например, у вашего Wi-Fi-бокса дома, это не покажет ваш общедоступный IP-адрес NAT, а вместо этого ваш частный IP-адрес NAT в локальной сети, который имеет маршрут по умолчанию к вашему локальному маршрутизатору WIFI; получение внешнего IP-адреса вашего Wi-Fi-маршрутизатора потребует либо запускать это на THAT-боксе, либо подключиться к внешней службе, такой как whatismyip.com/whatismyipaddress.com, которая может отражать IP-адрес ... но это полностью отличается от исходного вопроса. :)

Обновлен вызов connect () по предложению Педро в комментариях. (Если вам нужна конкретная заявка на лицензию, это общедоступный домен / бесплатный для любого использования или MIT / CC2-BY-SA для кода / контента для стека переполнения по вашему выбору.)

0
задан Viral Sangani 21 February 2019 в 04:18
поделиться