- ベストアンサー
ネットワーク情報を調べるモジュールとかあるのでしょうか?
Perlであるネットワーク環境下で、自アドレスを調べるにはgethostbyaddr関数で調べられますが、 そのネットワークのサーバーのグローバルアドレスを調べる方法はあるのでしょうか? インターネット プロバイダ | [サーバー] 192.168.0.1 or (プロバイダの接続IP 203.188.xxx.xxx) | ----A クライアント 192.168.0.11 | ----B クライアント 192.168.0.12 | ----C クライアント 192.168.0.13 A,B,C上で、Perlでgethostbyaddr関数を使うと、 それぞれ A 192.168.0.11 B 192.168.0.12 C 192.168.0.13 ですが、サーバーのプロバイダIPを A,B,Cクライアントから調べる方法????? Perlで、ネットワーク情報を調べるモジュールとかあるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
プライベートIPが割り当てられた環境で、自分のグローバルIPを調べる方法、ということでしょうか(違ったらすみません)。 ちなみにgethostbyaddrというのは名前のとおり、厳密にはバイナリのアドレスを与えてホスト名に変換する関数です。 で、グローバルIPを調べる方法というのは、環境に応じて様々だと思います。たとえばルーターを使っていたらルーターにコマンドを送るかAPIを使うのが早いです。 接続プロバイダ側にNATのような仕組みがある場合、LANの外側にあるサーバーに、アクセスしてきたホストのアドレスを返す何らかの仕組みを用意しておいて、そこにアクセスするのが簡単です。 (たしか、メッセンジャーなどP2Pソフトなどはこの方法だったような)
その他の回答 (1)
- osamuy
- ベストアンサー率42% (1231/2878)
サーバに対してリモートでコマンド実行(rshでもCGIでもSNMPでも使えるものを使って。)して取得したりとか、当該のIPアドレス情報をdyndns.orgとかに自動登録するようにしてルックアップするとか、いろいろアプローチはあるかと。