Проблема с динамическим IP - нужен пакетный файл

1266

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

0
Зачем вам все-таки менять свой IP? Звучит хитро для меня: P Thorarin 15 лет назад 0

7 ответов на вопрос

2
Col

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

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
akf

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

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

Спасибо akf, я использую простой файл bat для подключения и отключения сети. Что происходит следующим образом: @echo off rasdial "имя подключения удаленного доступа" / отсоединить rasdial "имя подключения удаленного доступа" имя пользователя пароль Пожалуйста, измените его, как вы предложили, и дайте мне нет здесь, потому что я ничего не знаю о пакетном или любом программировании и т.д. Я не могу сделать это сам. Что касается причины, которая касается всего этого, я хочу скачивать файлы с Rapidshare и т. Д. Без особых хлопот в качестве бесплатного пользователя. С уважением 15 лет назад 0
1
NVRAM

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

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

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

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

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

1
secureBadshah

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

0
nik

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


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

0
harrymc

It often happens that if you connect too fast, then you get the same IP address.

On my ISP, for example, a delay of at least 15 minutes is required for a new IP, but may take longer.

0
joojaa

If you have many network cards than the ipconfig method may not be good. Also you can eliminate the temporary file wit following logic:

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 

Похожие вопросы