Доработал пару багов и недочетов:
IP присваивался неверно или просто вылетала ошибка (индекс за пределами...)
Меленькие паузы между отключением и включением модемов, приводили к ошибке (модем включался, но не подключался к сети)
Добавил проверку на успешное получение нового IP адреса
Протестировал на 4 модемах, 2 недели полет нормальный.
Немного подробнее как работает скрипт:
Создает список из всех подключений Wwanpp - это тип соединения которое мы используем
Берет первое соединение из списка, отключает его, включает, парсит новый "черный" IP подключения
Находит 1 строку с IP в 3proxy.cfg и меняет старый "черный" IP на новый, сохраняет 3proxy.cfg
Перезапускает 3proxy (3proxy запускается в скрытом режиме, окно не видно)
Потом 2 соединение и 2 строку 3proxy.cfg с IP и т.д. пока соединения не закончатся.
Что точно может пойти не так?
Если у вас в 3proxy.cfg есть лишние строки "настройки" с использованием IP адресов
например 'internal 192.168.0.1'
Если в настройках самого прокси в файле 3proxy.cfg присутствуют более одного IP
например: 'proxy -n -a -p8080 -i127.0.0.1 -e100.75.145.126' используйте пожалуйста 'proxy -n -a -p8080 -ilocalhost -e100.75.145.126'
Если у вас в 3proxy.cfg все IP адреса одинаковые например:
'proxy -n -a -p8080 -ilocalhost -e100.100.100.1'
'proxy -n -a -p8081 -ilocalhost -e100.100.100.1'