タグ

ブックマーク / neocat.hatenablog.com (1)

  • 自分のIPアドレスを得る - Okiraku Programming

    ネットワーク通信を行う場合、プロトコルによっては自分のIPアドレスを相手に通知してあげる必要がある場合がある。 こういうときに、IPアドレスを得るためにgethostname()が返した名前でgethostbyname()を呼ぶ、という方法がとられているのを散見するが、これはダメだ。localhostや自分が設定した名前が帰ってきて、「127.0.0.1」になってしまうことがあるから。 また、特定のホストと通信する場合に、自分の側で使われるIPアドレスを知りたいという場合には使えない(listenするインターフェースを特定する時など)。 自力でルーティングしてたら何のためのネットワークスタックか分からないので、いい方法はないかなあ…と探していたら、見つかったのがこの投稿。 要約すると、ダミーのUDPソケットを作り、それを相手ホストにconnect()し、getsockname()で自分のア

    自分のIPアドレスを得る - Okiraku Programming
  • 1