IPv4アドレス取得

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
inec0310
記事: 15
登録日時: 7年前
住所: 埼玉県

IPv4アドレス取得

#1

投稿記事 by inec0310 » 7年前

C++でIPv4アドレスを取得する際最も簡単な方法は何でしょうか
私が思い浮かぶ限り

コード:

string getIPAddress()
{
  string ipaddress = "";
  IPHostEntry ipentry = Dns.GetHostEntry(Dns.GetHostName());
 
  foreach (IPAddress ip in ipentry.AddressList)
  {
    if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
    {
      ipaddress = ip.ToString();
      break;
    }
  }
  return ipaddress;
}
しか無いのですが、もっといい方法を知っている方教えて下さい

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: IPv4アドレス取得

#2

投稿記事 by みけCAT » 7年前

何のIPv4アドレスを取得したいのですか?
何でもいいなら、直接埋め込むのが簡単でしょう。
例えば

コード:

std::string ipv4addr = "0.0.0.0";
オフトピック
提示されたコードにはC++の標準機能でないものが使用されているように見えますが、何のライブラリでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

inec0310
記事: 15
登録日時: 7年前
住所: 埼玉県

Re: IPv4アドレス取得

#3

投稿記事 by inec0310 » 7年前

グローバルIPアドレスというのでしょうかそれを取得したいです

YuO
記事: 947
登録日時: 13年前
住所: 東京都世田谷区

Re: IPv4アドレス取得

#4

投稿記事 by YuO » 7年前

なんのために取得したいのか,ちょっと理解に苦しむのですが (普通,自分のIPアドレスを知る必要はない),
IPv4アドレスを返すようなweb serviceを作っておいて,そこへリクエストを投げて返ってきた値で知ればよいのではないでしょうか。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: IPv4アドレス取得

#5

投稿記事 by みけCAT » 7年前

YuO さんが書きました:IPv4アドレスを返すようなweb serviceを作っておいて,そこへリクエストを投げて返ってきた値で知ればよいのではないでしょうか。
わざわざweb serviceを作るくらいなら、STUNサーバーなどの既存のサービスを使えばよいのではないでしょうか。
STUN - Wikipedia
RFC 5389 - Session Traversal Utilities for NAT (STUN)
STUN server list · GitHub
【C++】STUNサーバーにグローバルIPアドレスを問い合わせる • C言語交流フォーラム ~ mixC++ ~
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

inec0310
記事: 15
登録日時: 7年前
住所: 埼玉県

Re: IPv4アドレス取得

#6

投稿記事 by inec0310 » 7年前

YuOさん、みけCATさんありがとうございます。
やはりたくさんの方法があるのですね

inec0310
記事: 15
登録日時: 7年前
住所: 埼玉県

Re: IPv4アドレス取得

#7

投稿記事 by inec0310 » 7年前

いい方法?を見つけさせていただきましたので一応の報告
DXライブラリの非公開関数らしいのですが
GetMyIPAddress() //自分のIPを得る
というのが有りましたw

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: IPv4アドレス取得

#8

投稿記事 by softya(ソフト屋) » 7年前

inec0310 さんが書きました:いい方法?を見つけさせていただきましたので一応の報告
DXライブラリの非公開関数らしいのですが
GetMyIPAddress() //自分のIPを得る
というのが有りましたw
それは、ルータがある場合やCATVのインターネット環境なら、ローカルIPアドレスである確率が高い取得方法ですよ。
みけCATさんの方法でないと出来ません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る