Мой провайдер предоставляет мне интернет-соединение с динамическим IP. Когда мне нужно сменить IP-адрес, я просто отключаю подключение удаленного доступа с помощью файла bat (rasdial "имя подключения удаленного доступа" / отсоединение) и снова подключаюсь с тем же файлом bat с помощью команды rasdial "имя подключения удаленного доступа" username password. В основном это работает, но иногда раздражает, когда я просматриваю, что мой IP не изменился. Это случается, скажем, один раз в каждые 10-15 попыток. Может ли существовать файл bat, который при исполнении отмечает текущий IP-адрес, затем отключает Интернет, затем повторно подключается и затем проверяет, изменился ли IP-адрес или нет, и, если IP-адрес не изменился, он возвращается к отключению и повторному подключению, пока IP-адрес не изменится.
7 ответов
Как то так должно работать
ipconfig | find "IP Address" > tempip.txt
set /p tvar=< tempip.txt
:untilloop
do redial here
ipconfig | find "IP Address" > tempip.txt
set /p newip=< tempip.txt
if %tvar%==%newip% goto untilloop
Если вам нужно сделать это в летучей мыши, вы можете использовать цикл for
с выводом ipconfig
в блоке set
. Захватите ваш начальный IP-адрес перед тем, как отключиться, и протестируйте его, используя тот же процесс, как только вы снова подключитесь.
Я не уверен, почему вам «нужно» изменить свой IP-адрес. Мне было бы интересно понять причины, поскольку они не так очевидны, как вы указываете, что они должны быть в вашем комментарии.
Обращались ли вы в службу поддержки вашего интернет-провайдера?
- Узнайте, каковы сроки аренды DHCP.
- Спросите их, какие факторы могут привести к изменению вашего IP-адреса. Я не буду упоминать, что вы пытаетесь получить другой.
В основном это работает, но иногда раздражает, когда я просматриваю, что мой IP не изменился. Это случается, скажем, один раз в каждые 10-15 попыток.
Возможно, вам придется подождать, чтобы продлить значительную часть времени аренды, хотя, если вы получите другой адрес в 90+% случаев, возможно, нет.
Я обычно больше заботился о сохранении адреса, поэтому я не уверен, что вы должны сделать, чтобы избежать этого. Тем не менее, они могут быть информативными:
Если вы можете менять свой MAC-адрес каждый раз, когда запускаете скрипт, вы непременно получите новый IP-адрес от DHCP-сервера. Шансы на конфликты MAC довольно низки.
Хммм. Как обойти ограничения загрузки Rapidshare и время ожидания?
В ответ на голосование против этого ответа ...
Если я правильно помню, ОП описал свои причины изменения IP-адреса, чтобы обойти блокировку RapidShare ...
Если у вас много сетевых карт, метод ipconfig может оказаться неэффективным. Также вы можете удалить временный файл с помощью следующей логики:
for /f "tokens=3" %%i in (
'netsh interface ip show addresses "Connection Name"^| findstr "IP"'
) do set ip=%%i
:dountill
rasdial "dial-up connection name" /disconnect
rasdial "dial-up connection name" username password
for /f "tokens=3" %%i in (
'netsh interface ip show addresses "Connection Name"^| findstr "IP"'
) do set ipnew=%%i
:delay a sec or so
PING 1.1.1.1 -n 1 -w 2 >NUL
if %ip%==%newip% goto dountill
Часто бывает так, что если вы подключаетесь слишком быстро, вы получаете тот же IP-адрес.
Например, на моем интернет-провайдере для нового IP-адреса требуется задержка не менее 15 минут, но она может занять больше времени.