ダイナミックIPに問題があり、バッチファイルが必要


0

ISPは、動的IPを使用したインターネット接続を提供します。IPを変更する必要がある場合、batファイルを使用してダイヤルアップ接続を切断し(rasdial "dial-up connection name" / disconnect)、rasdial "dial-up connection name" username passwordコマンドを使用して同じbatファイルに再接続します。ほとんど動作しますが、ブラウジング中にIPが変更されていないことを後で見つけるのは面倒です。10〜15回の試行ごとに1回と言われます。実行時に現在のIPアドレスを記録してからインターネットを切断して再接続し、IPアドレスが変更されたかどうかを確認し、IPアドレスが変更されていない場合はIPアドレスが変更されるまで切断と再接続に戻るbatファイルがありますか?

batch 

とにかくIPを変更する必要があるのはなぜですか?私には危険な音:P
Thorarin

回答:


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ループを使うことができました。切断する前に初期IPアドレスを取得し、再接続したら同じプロセスを使用してテストします。ipconfigset

IPアドレスを変更する必要がある理由がわかりません。理由はあなたのコメントにあるべきだとあなたが示すほど明確ではないので、私はその理由を理解することに興味があるでしょう。


おかげでakf、私は簡単な単一のbatファイルを使用してネットの接続と切断を行っています。次のとおりです:@echo off rasdial "dial-up connection name" / disconnect rasdial "dial-up connection name" username password提案どおりに変更してください。自分ではできません。理由としては、全体が懸念されるため、無料ユーザーとして手間をかけずにrapidshareなどからファイルをダウンロードしたいです。よろしく

1

ISPサポートに連絡しましたか?

  • DHCPリース時間を調べてください。
  • IPアドレスを変更する要因を尋ねます。私はあなたが別のものを手に入れようとしているとは言いません。

ほとんど動作しますが、ブラウジング中にIPが変更されていないことを後で見つけるのは面倒です。10〜15回の試行ごとに1回と言われます。

リース時間のかなりの部分を更新するまで待つ必要があるかもしれませんが、90%以上の時間で別のアドレスを取得する場合はそうではないかもしれません。

私は一般的に住所の保存に関心があったので、それを避けるために何をすべきかはわかりません。それにもかかわらず、これらは参考になるかもしれません:


1

スクリプトを実行するたびにMACアドレスを変更できる場合、DHCPサーバーから確実に新しいIPを受け取ります。MACの競合の可能性は非常に低いです。



0

接続が速すぎると、同じIPアドレスを取得することがよくあります。

たとえば、ISPでは、新しいIPには少なくとも15分の遅延が必要ですが、もっと時間がかかる場合があります。


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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.