質問

もう一つはここに当社のスタッフには様々な場面でIPv4機では弊社サーバの構築(IPv6)で失敗します。このように:

IPHostEntry ipHostEntry = Dns.GetHostEntry(string.Empty);

ドキュメンテーションにGetHostEntryい渡す文字列です。空んのIPv4アドレスにlocalhost.アドバイスをお聞かせ下さい。問題は、この文字列"::1:"当社のIPv6機いと考えているIPv6アドレスです。

Pingingの機械その他のIPv4機にもってIPv4アドレス...と "ping-4machinename" からそのものの正しいIPv4アドレス....がpinging定期的に行うことからそのものを"::1:".

かつては、IPv4のためにこれを機に、かか。

役に立ちましたか?

他のヒント

すべてのローカルIPv4アドレスを確認するには:

IPAddress[] ipv4Addresses = Array.FindAll(
    Dns.GetHostEntry(string.Empty).AddressList,
    a => a.AddressFamily == AddressFamily.InterNetwork);

またはあなただけの1をしたい場合はArray.FindまたはArray.FindLastを使用します。

IPHostEntry ipHostInfo = Dns.GetHostEntry(serverName);
IPAddress ipAddress = ipHostInfo.AddressList
    .FirstOrDefault(a => a.AddressFamily == AddressFamily.InterNetwork);
    public Form1()
    {
        InitializeComponent();

        string myHost = System.Net.Dns.GetHostName();
        string myIP = null;

        for (int i = 0; i <= System.Net.Dns.GetHostEntry(myHost).AddressList.Length - 1; i++)
        {
            if (System.Net.Dns.GetHostEntry(myHost).AddressList[i].IsIPv6LinkLocal == false)
            {
                myIP = System.Net.Dns.GetHostEntry(myHost).AddressList[i].ToString();
            }
        }
    }

パブリック変数にMYIPとMYHOSTを宣言 そして、フォームの任意の関数で使用します。

    public static string GetIPAddress(string hostname)
    {
        IPHostEntry host;
        host = Dns.GetHostEntry(hostname);

        foreach (IPAddress ip in host.AddressList)
        {
            if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
            {
                //System.Diagnostics.Debug.WriteLine("LocalIPadress: " + ip);
                return ip.ToString();
            }
        }
        return string.Empty;
    }

すべての有効なアドレスのリストを見つけるには、これは私が使用しているコードです。

public static IEnumerable<string> GetAddresses()
{
      var host = Dns.GetHostEntry(Dns.GetHostName());
      return (from ip in host.AddressList where ip.AddressFamily == AddressFamily.lo select ip.ToString()).ToList();
}

IPv6

lblIP.テキスト=。います。Dns.GetHostEntry(システム。います。Dns.GetHostName).AddressList(0)です。ToString()


IPv4

lblIP.テキスト=。います。Dns.GetHostEntry(システム。います。Dns.GetHostName).AddressList(1).ToString()

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top