如何获得公共IP地址,局域网IP地址&客户机在MVC 4中的MAC地址?在MVC 4中获取公共IP地址,客户机的Lan IP地址和MAC地址?
我正在尝试获取客户端计算机的IP地址。 Request.UserHostAddress
给出Lan IP地址,但是
- 全球IP地址呢?
- 如何获取公共IP地址?
- 谷歌,whatismyip.com和其他许多网站如何选择我们的公有IP地址等。
如何获得公共IP地址,局域网IP地址&客户机在MVC 4中的MAC地址?在MVC 4中获取公共IP地址,客户机的Lan IP地址和MAC地址?
我正在尝试获取客户端计算机的IP地址。 Request.UserHostAddress
给出Lan IP地址,但是
对于LAN IP地址:
string ip = System.Web.HttpContext.Current.Request.UserHostAddress;
对于公共IP地址:
public static string GetPublicIP()
{
string url = "http://checkip.dyndns.org";
System.Net.WebRequest req = System.Net.WebRequest.Create(url);
System.Net.WebResponse resp = req.GetResponse();
System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
string response = sr.ReadToEnd().Trim();
string[] a = response.Split(':');
string a2 = a[1].Substring(1);
string[] a3 = a2.Split('<');
string a4 = a3[0];
return a4;
}
或
private string GetPublicIpAddress()
{
var request = (HttpWebRequest)WebRequest.Create("http://ifconfig.me");
request.UserAgent = "curl"; // this simulate curl linux command
string publicIPAddress;
request.Method = "GET";
using (WebResponse response = request.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
publicIPAddress = reader.ReadToEnd();
}
}
return publicIPAddress.Replace("\n", "");
}
对于MAC地址:
public string GetMACAddress()
{
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
String sMacAddress = string.Empty;
foreach (NetworkInterface adapter in nics)
{
if (sMacAddress == String.Empty)// only return MAC Address from first card
{
IPInterfaceProperties properties = adapter.GetIPProperties();
sMacAddress = adapter.GetPhysicalAddress().ToString();
}
} return sMacAddress;
}
试试这个,它可能对你有帮助。
如果您位于同一个Lan上,您只能获得Lan IP地址。同样,基于互联网的服务只能看到公共IP地址,因为您可以通过互联网访问它们。如果你在同一个网络链路上,你只能看到MAC地址。您要求提供3种不同的信息,这些信息都在完全不同的级别上运行。你想要解决什么实际问题? –
鉴于您的[评论](http://stackoverflow.com/questions/21751402/get-public-ip-address-lan-ip-address-mac-address-of-clients-machine-in-mvc-4#comment32901883_21751542 )询问_“如何唯一标识访问者?”_,我会说这是与[如何在ASP.NET应用程序中唯一标识客户端机器?](http://stackoverflow.com/questions/4609316 /如何对唯一-识别最客户机功能于一个-ASP净应用程序)。 – CodeCaster