Решил, благодаря моему коллеге ...
Причина была в том, что в моем случае поле row.SitePrefixLength
изначально было установлено на 64
, что является недопустимым значением, в соответствии с MIB_IPINTERFACE_ROW doc page :
[ 1114] Для адреса IPv4 любое значение, большее 32, является недопустимым.blockquote>
Как только я вставил следующую строку перед вызовом SetIpInterfaceEntry , все пошло хорошо:
row.SitePrefixLength = 0;
Несмотря на то, что это решило проблему, осталось еще мало открытых вопросов :
- Как получилось, что текущее текущее значение недопустимо?
- Какое значение указать, если вы встретите там недопустимое значение? Похоже, что установка его на
0
является ответом, но я не уверен в этом.Но, во-первых, я, вероятно, должен выяснить, какова цель
SitePrefixLength
field / param. :)ОБНОВЛЕНИЕ : Я только что нашел ответ на свой второй оставшийся вопрос - он был на одной и той же странице документа все время (позор мне не все читает). Таким образом, ответ таков:
Для IPv4 элемент
BLOCKQUOTE>SitePrefixLength
должен быть равен 0.
Попробуйте range (100, -1, -1)
, третий аргумент является используемым приращением (задокументировано здесь ).
(параметры "диапазона", запуск, остановка, шаг описаны здесь )
На мой взгляд, это наиболее читаемый:
for i in reversed(xrange(101)):
print i,
for i in range(100, -1, -1)
и несколько более длинное (и более медленное) решение:
for i in reversed(range(101))
for i in range(101)[::-1]
Как правило, в Python вы можете использовать отрицательные индексы для начала с обратной стороны:
numbers = [10, 20, 30, 40, 50]
for i in xrange(len(numbers)):
print numbers[-i - 1]
Результат:
50
40
30
20
10