取得のIPv4アドレスDns.GetHostEntry()
質問
もう一つはここに当社のスタッフには様々な場面でIPv4機では弊社サーバの構築(IPv6)で失敗します。このように:
IPHostEntry ipHostEntry = Dns.GetHostEntry(string.Empty);
ドキュメンテーションにGetHostEntryい渡す文字列です。空んのIPv4アドレスにlocalhost.アドバイスをお聞かせ下さい。問題は、この文字列"::1:"当社のIPv6機いと考えているIPv6アドレスです。
Pingingの機械その他のIPv4機にもってIPv4アドレス...と "ping-4machinename" からそのものの正しいIPv4アドレス....がpinging定期的に行うことからそのものを"::1:".
かつては、IPv4のためにこれを機に、かか。
解決
あなたはすべてを見てきましたアドレスは<のhref =「http://msdn.microsoft.com/en-us/library/system.net.ipaddress.addressfamily(VS.80).aspx」のものを破棄し、見返りににREL = "noreferrer">家族InterNetworkV6のと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()