0

私は学校のサーバーにアカウントを持っており、時々使用する必要のある自宅のコンピューターを持っています。キーを交換しましたが、問題は1つだけです。私の学校のアカウントには「account_name@school」という名前が関連付けられていますが、ホームネットワークには関連付けられていません。私の計画では、1時間ごとにホームネットワークのIPアドレスを取得し、学校のアカウントにsshで接続し、ホームネットワークのIPアドレスを保存しているssh構成ファイルを更新するスクリプトを作成する予定です。

シェルスクリプトから自宅のコンピューターのIPアドレスを取得するにはどうすればよいですか?

PSこれは賢明な計画ですか?

4

4 に答える 4

2

次の 2 つの基本的な選択肢があります。

  1. 動的 DNS アドレス (例: dyndns.org)。その設定はスタック オーバーフローの範囲外ですが、おそらくあなたにとって正しいことです。

  2. http://checkip.dyndns.org/などのツールを使用して外部 IP アドレスを報告し、結果を解析します。

    lynx -dump http://checkip.dyndns.org/ | awk '{print $NF}'
    

いずれにせよ、SSH のインバウンド アクセスを許可するようにルーターを構成する必要があるため、スーパー ユーザーまたはUnix & Linuxについてさらに情報を求める必要があります。

于 2012-06-15T23:17:26.917 に答える
1

私のhttp://ipcalf.comcurl -H Accept:text/plain ipcalf.comサーバーは、ヘッダー ベースまたは明示的なコンテンツ ネゴシエーションをサポートしていcurl -s http://ipcalf.com/?format=textます。

(「完全な」ドキュメントとソース コードはgithub にあります。)

于 2013-09-05T05:49:26.613 に答える
0

http://automation.whatismyip.com/n09230945.aspにリクエストを送信して、 WIMIからパブリック IP を取得できます。このコマンド:

ssh account_name@school "echo -n "$(wget http://automation.whatismyip.com/n09230945.asp -O -)" > some_remote_file"

は、学校のホーム フォルダーにある「some_remote_file」というファイルにホーム パブリック IP を書き込みます。cron で設定すると、学校から自宅のルーターのパブリック IP にアクセスできるようになります。

ルーターのIPを使用して自宅のコンピューターにsshできるように、ルーターに何らかのポート転送を既に設定している場合は、問題ありません:)

于 2012-06-15T23:20:22.490 に答える
0

外部サービスを使用するよりも、IP アドレスを取得するためのより良い方法を見つけました。サーバーに SSH で接続しています。したがって、サーバーは誰が SSH 接続しているかを認識している必要があるため、who や pinky などのツールを使用して、誰が SSH 接続しているかを確認できます。

ログインしているコンピュータの名前を取得するコマンドは次のとおりです。

echo $SSH_CLIENT | awk '{ print $1 }'
于 2012-06-15T23:50:58.490 に答える