|
0 / 0 / 0
Регистрация: 29.08.2015
Сообщений: 5
|
|||||||||||
Получить IPv4-адрес и использовать его в качестве аргумента для команды NETSH29.08.2015, 22:31. Показов 3004. Ответов 8
Метки нет (Все метки)
Приветствую!
Начну издалека. Недавно захотел настроить себе подключение по IPv6 через tunnelbroker, но вот незадача - мой интернет провайдер выдаёт белые динамические IPv4 адреса, поэтому нужно автоматизировать процесс обновления адреса туннеля. Сам tunnelbroker предлагает решение, но оно работает только на его стороне, а на моей нет, поэтому каждый раз при смене IPv4 адреса приходится удалять старый туннель и создавать новый. Усердно погуглив, нашёл решение, но у меня возникли проблемы с получением IPv4 адреса и передаче его в качестве аргумента для функции netsh. Связался с автором кода, но тот пару раз ответил и затих, а проблема так и не осталась решённой. Вот, собственно, ссылка на первоисточник: http://josherickson.org/132/hu... up-script/
Автор посоветовал поменять !$_.contains("Loopback"); на $_.contains("Satel"); (потому что моё подключение к интернету так называется), также я посчитал логичным поменять findstr /c:"IP Address" на findstr /c:"IP-Адрес", так как оригинальный код писался под англоязычную систему, а у меня - русский язык. Но всё равно проблема та же - в переменную $interface_ip записывается некорректный адрес (или не записывается вообще), соответственно команде netsh передаются неправильные параметры, и ничего не работает. Прогуглив тему извлечения IPv4 адреса, нашёл другой вариант.
-ERROR: Invalid IPv4 address supplied Что значит что функции netsh передан неверный параметр. Прошу помощи. С Уважением, EAGauss
0
|
|||||||||||
| 29.08.2015, 22:31 | |
|
Ответы с готовыми решениями:
8
6. Написать командный файл, который обеспечивает выполнение команды, имя которой задано в качестве первого аргумента |
|
|
|
| 31.08.2015, 11:13 | |
|
EAGauss, Проверьте тип переменной $interface_ip через $interface_ip.gettype()
Что-то мне подсказывает, что тип у Вас string[] - то есть строковый массив Если это так, то просто измените $interface на $interface_ip[0] Также существует WMI-модель, на мой взгляд из нее идеологически правильнее получать ip-адресс
0
|
|
|
0 / 0 / 0
Регистрация: 29.08.2015
Сообщений: 5
|
|||||||||||||||||||||||||||||||
| 31.08.2015, 15:03 [ТС] | |||||||||||||||||||||||||||||||
|
При
netsh interface ipv6 add v6v4tunnel IP6Tunnel $interface_ip 127.0.0.1 или netsh interface ipv6 add v6v4tunnel IP6Tunnel $interface_ip[0] 127.0.0.1 выводит:
Добавлено через 7 минут upd. При ручном вводе: netsh interface ipv6 add v6v4tunnel IP6Tunnel 87.244.171.97 216.66.80.30 никаких ошибок не возникает и создаётся туннель.
0
|
|||||||||||||||||||||||||||||||
|
|
||||||
| 31.08.2015, 15:23 | ||||||
|
EAGauss, Нет с типом у Вас все в порядке,как раз требуемый string.
$interface_ip[0]-это получение первого индекса массива, в том случае если бы у Вас был массив строкого типа. попробуйте заэкранировать
0
|
||||||
|
0 / 0 / 0
Регистрация: 29.08.2015
Сообщений: 5
|
|
| 31.08.2015, 15:39 [ТС] | |
|
Я это понял, но всё-таки решил написать, чтобы прояснить картину.
0
|
|
|
|
||||||
| 31.08.2015, 18:38 | ||||||
|
EAGauss, скорее всего утилита netsh не воспринимает powershell-ные переменные. Можно ли netsh передать значение переменной не подскажу. Предлагаю посмотреть в сторону командлета
New-NetIPAddress Добавлено через 22 минуты Только он, к сожалению, предустановлен для Windows Server 2012 R2 and Windows 8.1 Добавлено через 1 час 47 минут Можно попробовать еще текстовую переменную с командой передать по конвееру на netsh Что-то вроде этого:
0
|
||||||
|
0 / 0 / 0
Регистрация: 29.08.2015
Сообщений: 5
|
|
| 31.08.2015, 18:50 [ТС] | |
|
v_svitere, пробовал через $command - к сожалению, не работает.
Гуглил, как реализовать через cmd / bat - не нашёл.
0
|
|
|
|
||||||
| 31.08.2015, 19:05 | ||||||
|
EAGauss, По конвееру переменная передается netsh, только что проверил сам.
Я не силен в синтаксисе netsh, но синтаксической ошибки powershell здесь точно нет. При таком вводе какая ошибка?
0
|
||||||
|
0 / 0 / 0
Регистрация: 29.08.2015
Сообщений: 5
|
||||||
| 31.08.2015, 21:00 [ТС] | ||||||
|
Всё, наконец, решил проблему - поделюсь решением.
Ошибку -ERROR: Invalid IPv4 address supplied выдавал не netsh, а сайт tunnelbroker при авторизации. Решил как: Перечитал Tunnelbroker.net API https://forums.he.net/index.php?topic=3153.0 И подправил:
MD5PASS - Update Key (Личный кабинет tunnelbroker, страница туннеля, вкладка Advanced) USERID - User ID (Личный кабинет tunnelbroker) TUNNELID - Tunnel ID (Личный кабинет tunnelbroker, страница туннеля) ClientIPv6Address, ServerIPv6Address, ServerIPv4Address - соответственно (Личный кабинет tunnelbroker, страница туннеля). Теперь выдаёт ошибку: -ERROR: This tunnel is already associated with this IP address. Please try to limit your updates to IP changes. Но это нормально, потому что мой IPv4 адрес ещё не успел поменяться и ещё не прошло 5 минут после предыдущего запроса. Благодарю за помощь всех, кто не остались равнодушными.
0
|
||||||
| 31.08.2015, 21:00 | |
|
Помогаю со студенческими работами здесь
9
Вычислить адрес верхушки стека, адрес следующей команды, адрес переменной, адрес которой содержится в BX
Получить в качестве аргумента аббревиатуру и найти определение по словарю
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|