Мой провайдер предоставляет мне интернет-соединение с динамическим IP. Когда мне нужно сменить IP-адрес, я просто отключаю подключение удаленного доступа с помощью файла bat (rasdial "имя подключения удаленного доступа" / отсоединение) и снова подключаюсь с тем же файлом bat с помощью команды rasdial "имя подключения удаленного доступа" username password. В основном это работает, но иногда раздражает, когда я просматриваю, что мой IP не изменился. Это случается, скажем, один раз в каждые 10-15 попыток. Может ли существовать файл bat, который при исполнении отмечает текущий IP-адрес, затем отключает Интернет, затем повторно подключается и затем проверяет, изменился ли IP-адрес или нет, и, если IP-адрес не изменился, он возвращается к отключению и повторному подключению, пока IP-адрес не изменится.

7 ответов7

2

Как то так должно работать

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
1

Если вам нужно сделать это в летучей мыши, вы можете использовать цикл for с выводом ipconfig в блоке set . Захватите ваш начальный IP-адрес перед тем, как отключиться, и протестируйте его, используя тот же процесс, как только вы снова подключитесь.

Я не уверен, почему вам «нужно» изменить свой IP-адрес. Мне было бы интересно понять причины, поскольку они не так очевидны, как вы указываете, что они должны быть в вашем комментарии.

1

Обращались ли вы в службу поддержки вашего интернет-провайдера?

  • Узнайте, каковы сроки аренды DHCP.
  • Спросите их, какие факторы могут привести к изменению вашего IP-адреса. Я не буду упоминать, что вы пытаетесь получить другой.

В основном это работает, но иногда раздражает, когда я просматриваю, что мой IP не изменился. Это случается, скажем, один раз в каждые 10-15 попыток.

Возможно, вам придется подождать, чтобы продлить значительную часть времени аренды, хотя, если вы получите другой адрес в 90+% случаев, возможно, нет.

Я обычно больше заботился о сохранении адреса, поэтому я не уверен, что вы должны сделать, чтобы избежать этого. Тем не менее, они могут быть информативными:

1

Если вы можете менять свой MAC-адрес каждый раз, когда запускаете скрипт, вы непременно получите новый IP-адрес от DHCP-сервера. Шансы на конфликты MAC довольно низки.

0

Хммм. Как обойти ограничения загрузки Rapidshare и время ожидания?


В ответ на голосование против этого ответа ...
Если я правильно помню, ОП описал свои причины изменения IP-адреса, чтобы обойти блокировку RapidShare ...

0

Если у вас много сетевых карт, метод 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
0

Часто бывает так, что если вы подключаетесь слишком быстро, вы получаете тот же IP-адрес.

Например, на моем интернет-провайдере для нового IP-адреса требуется задержка не менее 15 минут, но она может занять больше времени.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .