web-dev-qa-db-ja.com

コマンドラインからWebページのボタンを「押して」ケーブルモデムを再起動するにはどうすればよいですか。

プログラムでケーブルモデムを再起動しようとしています。以前は、wgetを使用してこれを行うことができました。

wget http://192.168.100.1/reset.htm?reset_modem=Restart+Cable+Modem

ただし、ケーブルモデムを Arris SB619 に変更したところ、これは機能しなくなりました。

新しいモデルには構成ページがあります http://192.168.100.1/cgi-bin/configuration (正確なソースはここで確認できます https://bpaste.net/show/b19c875569ec )フォームのボタンをクリックして再起動できる場所:

<input type="submit" value="Reboot" align="middle"  onClick="resetReq();">
1
WhiskerBiscuit

私の提案は、次のことを行うことです。

  1. リセットボタンがあるページに移動します。
  2. ブラウザ開発ツールを開きます(これにはChrome)をお勧めします)
  3. [ネットワーク]タブに移動します。記録されていることを確認します(開発ツールUIの左上隅にあるドット。[ログを永続化]のチェックボックスをオンにします。ログにたくさんのものがある場合は、ログをクリアします。
  4. ボタンをクリックします。コンソールに記録されたネットワーク要求が表示されます。それを右クリックすると、ChromeはリクエストをCURLコマンドとしてコピーするオプションを提供します(または、おそらくwgetがあります...プラットフォームに依存する可能性があります)。

次に、そのコマンドを分析する必要があります(コンソールでリクエストをクリックするだけで、リクエストヘッダーを確認することもできます)。認証を使用していますか(たとえば、Cookieに値を渡すか、HTTP認証を使用しますか)?もしそうなら、私の推測では、認証には有効期限が組み込まれています。 Cookieまたはトークン(ユーザー名/パスワードではなく)を使用する場合は、管理インターフェイスにログインするための要求をキャプチャし、その要求の応答ヘッダー(またはおそらく応答データ)のどこに認証トークンが送信されるかを確認する必要がありますお使いのブラウザに。スクリプトを更新して、最初にそのトークンを認証して取得し、次にそのトークン/認証を使用して再起動する2番目の要求を行う必要がある場合があります。

詳細はルーターの認証プロセスの正確な実装によって異なりますが、この一般的なアプローチはほとんどの場合に機能するはずです。

1
timehat