ValueError: '10 .0.0.0 / 24 'не является сетью IPv4 или IPv6

Я хочу работать с IP-подсетями / IP-адресами в Python. Я создал код Python с помощью модуля ipaddress . Когда я запускаю код в IDE pycharm, он отлично работает. Но когда я запускаю командную строку, набрав python test.py , она показывает следующую ошибку.

 ValueError: '10.0.0.0/24' does not appear to be an IPv4 or IPv6 network 

test.py :

 import ipaddress srcIp = ipaddress.ip_network("10.0.0.0/24") print(srcIp) 

2 Solutions collect form web for “ValueError: '10 .0.0.0 / 24 'не является сетью IPv4 или IPv6”

Кажется, он работает в Python 2.7, если вы используете строку Unicode.

 import ipaddress srcIp = ipaddress.ip_network(u'10.0.0.0/24') print srcIp 

Основная проблема заключается в том, что ip_network() создает экземпляр объекта IPv4Network/IPv6Network который требует, чтобы сетевой адрес являлся строкой unicode. В Python 3 это нормально, но в Python 2 строки по умолчанию не являются unicode. В Python 2:

 >>> import ipaddress >>> ipaddress.IPv4Network('10.0.0.0/24') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "ipaddress.py", line 1486, in __init__ self.network_address = IPv4Address(address) File "ipaddress.py", line 1271, in __init__ self._check_packed_address(address, 4) File "ipaddress.py", line 528, in _check_packed_address expected_len, self._version)) ipaddress.AddressValueError: '10.0.0.0/24' (len 11 != 4) is not permitted as an IPv4 address (did you pass in a bytes instead of a unicode object?) >>> ipaddress.IPv4Network(u'10.0.0.0/24') IPv4Network(u'10.0.0.0/24') 

ipaddress.ip_network() ловит это исключение и вызывает ValueError с менее подробным сообщением:

 >>> ipaddress.ip_network('10.0.0.0/24') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "ipaddress.py", line 148, in ip_network address) ValueError: '10.0.0.0/24' does not appear to be an IPv4 or IPv6 network 

Таким образом, это похоже на проблему с unicode. Одно из возможных объяснений заключается в том, что, возможно, PyCharm использует Python> = 3.3, который предоставляет модуль ipaddress в стандартной библиотеке и в которой строки по умолчанию являются unicode. В вашей командной строке Python может быть версия 2, в которой строки по умолчанию для байтовых строк и ipaddress.ip_network() будут работать, как показано выше. Я не уверен в этом, потому что оператор print srcIp указывает, что вы используете Python 2 в обоих случаях?

Другая возможность заключается в том, что PyCharm каким-то образом влияет на кодирование строковых литералов в Python 2. Я почти ничего не знаю о PyCharm, но есть опции кодирования, которые можно установить. Возможно, они эффективно делают что-то похожее на from __future__ import unicode_literals .

  • Поиск локальных IP-адресов с использованием stdlib Python
  • Как я могу регистрировать вывод IPython без уродливых 7 строк информации о регистрации при каждой загрузке?
  • Как запретить пользователям из моего приложения Django (с завихрением)
  • Python в Linux: получить имя хоста в / etc / hostname
  • Обнаружение общедоступного IP-программ
  • Как определить IP-адрес сервера после соединения с urllib2?
  • Получите IP-маску от IP-адреса и длины маски в Python
  • Проверка IP-адресов
  •  
    Interesting Posts for Van-Lav

    Преобразование txt в xlsx при установке свойства ячейки для числовых ячеек как число

    Может ли кто-нибудь объяснить, почему эта сортировка не будет работать?

    Системное форматирование даты не собирает django locale

    Как перезаписать импортированный класс python для всех вызовов

    Как получить данные JSON из службы RESTful с помощью Python?

    Возвращаемое значение из javascript onclick в переменную или изменение глобальной переменной с помощью onclick

    Создание манекена в конвейере с различными уровнями в поезде и тестовом наборе

    Как я могу взаимодействовать с приложением на mac через подпроцесс python?

    FreqDist с NLTK

    Значение по умолчанию для функции member в python

    Пути Django WGSI

    Не получать сигнал от Flask-Security

    Очистите веб-страницу, которая требует, чтобы они сначала открывали сессионный файл cookie

    Как использовать login_required в режиме просмотра django

    Есть ли способ сохранить дубликаты ключей в словаре python

    Python - лучший язык программирования в мире.