Ошибка сокета "IP-адрес недействителен в его контексте" - Python

Я использую Python 2.6 и Windows Server 2008.

Сервер имеет два IP-адреса 1 внутренний, 1 внешний.

Мне нужен Python для использования внешнего IP-адреса, но при этом я получаю следующее:

socket.error: [Ошибка 10049] Запрошенный адрес недействителен в своем контексте

Чтобы быть более точным, я использую команду сервера Django для тех, кто знаком с ней.

Edit:

ipconfig вызывает только внутренний IP-адрес, а все службы, с которыми я работаю, без проблем используют внешний IP-адрес!

Любые идеи?

1 ответ

Эта ошибка Windows дает, когда вы пытаетесь связать адрес на локальном компьютере, который не назначен ни одному из адаптеров на машине. Если ipconfig не отображает его, вы не можете привязываться к нему.

Если внешний адрес находится на маршрутизаторе, который отправляет запросы NAT от него на внутренний адрес сервера, вы не можете привязываться к нему, потому что он находится на другом компьютере. Вероятно, это так. Вы можете привязать к socket.INADDR_ANY (или его эквивалент Django). Это будет привязываться ко всем адресам, которые находятся на машине прямо сейчас.

Также обратите внимание, что если внешний адрес NAT'ed к вашему внутреннему, привязка к внутреннему должна быть достаточной.

licensed under cc by-sa 3.0 with attribution.