ASP.NETページを呼び出すサーバーのIPアドレスを取得するにはどうすればよいですか?私はResponseオブジェクトに関するものを見てきましたが、c#では非常に新しいものです。トンありがとう。
Jergason
質問する
86233 次
6 に答える
66
これは機能するはずです:
//this gets the ip address of the server pc
public string GetIPAddress()
{
IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName()); // `Dns.Resolve()` method is deprecated.
IPAddress ipAddress = ipHostInfo.AddressList[0];
return ipAddress.ToString();
}
http://wec-library.blogspot.com/2008/03/gets-ip-address-of-server-pc-using-c.html
また
//while this gets the ip address of the visitor making the call
HttpContext.Current.Request.UserHostAddress;
http://www.geekpedia.com/KB32_How-do-I-get-the-visitors-IP-address.html
于 2009-03-14T19:20:43.280 に答える
40
Request.ServerVariables["LOCAL_ADDR"];
これにより、マルチホーム サーバーのリクエストが送信された IP が得られます。
于 2012-07-18T13:22:44.073 に答える
14
上記は DNS 呼び出しが必要なため低速です (また、DNS 呼び出しが利用できない場合は明らかに機能しません)。以下のコードを使用して、現在の PC のローカル IPV4 アドレスと対応するサブネット マスクのマップを取得できます。
public static Dictionary<IPAddress, IPAddress> GetAllNetworkInterfaceIpv4Addresses()
{
var map = new Dictionary<IPAddress, IPAddress>();
foreach (var ni in NetworkInterface.GetAllNetworkInterfaces())
{
foreach (var uipi in ni.GetIPProperties().UnicastAddresses)
{
if (uipi.Address.AddressFamily != AddressFamily.InterNetwork) continue;
if (uipi.IPv4Mask == null) continue; //ignore 127.0.0.1
map[uipi.Address] = uipi.IPv4Mask;
}
}
return map;
}
警告: これは Mono ではまだ実装されていません
于 2010-02-10T19:08:17.990 に答える
8
//this gets the ip address of the server pc
public string GetIPAddress()
{
string strHostName = System.Net.Dns.GetHostName();
//IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName()); <-- Obsolete
IPHostEntry ipHostInfo = Dns.GetHostEntry(strHostName);
IPAddress ipAddress = ipHostInfo.AddressList[0];
return ipAddress.ToString();
}
于 2011-04-04T11:30:27.967 に答える
6
これは IPv4 で機能します。
public static string GetServerIP()
{
IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress address in ipHostInfo.AddressList)
{
if (address.AddressFamily == AddressFamily.InterNetwork)
return address.ToString();
}
return string.Empty;
}
于 2015-06-15T12:56:44.737 に答える