asp.net服务器ip(ASPNET服务器控件)
- 服务器
- 2022-12-20 10:20:20
- 22
本篇文章给大家谈谈asp.net服务器ip,以及ASPNET服务器控件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、asp.net 怎么获取客户端真实 IP?
- 2、asp.net网站发布到服务器之后,获取的客户端IP都是127.0.0.1,为什么?
- 3、asp.net如何获取服务器ip与mac地址
- 4、ASP.NET中服务器端如何获取客户端的外网IP
asp.net 怎么获取客户端真实 IP?
asp.net中获取客户端ip地址的两种方法
方法一:
/// summary
/// 获取用户登录IP
/// /summary
/// returns/returns
string GetIp()
{
//可以透过代理服务器
string userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (userIP == null || userIP == "")
{
//没有代理服务器,如果有代理服务器获取的是代理服务器的IP
userIP = Request.ServerVariables["REMOTE_ADDR"];
}
return userIP;
}
方法二:(很抱歉,这种方法获取的是服务器端的IP)
//需要using System.Net;
string hostname = Dns.GetHostName();//服务器的用户名
Response.Write("HostName:"+hostname);
IPAddress[] address = Dns.GetHostAddresses(hostname);//获取服务器端IP列表,第一IP是address[0]
IPEndPoint ipendpoint = new IPEndPoint(address[0], 1234);
Response.Write("address:"+ipendpoint.Address.ToString());//输出IP:192.168.0.210,不是127.0.0.1
Response.Write("port:" + ipendpoint.Port.ToString());//输出1234
Response.Write("endpoint:" + ipendpoint.ToString());//输出的是192.168.0.210:1234
asp.net网站发布到服务器之后,获取的客户端IP都是127.0.0.1,为什么?
public string IPAddress()
{
string result = String.Empty;
result = HttpContext.Current.Request.ServerVariables["HTTP_VIA"];
if (!string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (!string.IsNullOrEmpty(result))
{
//可能有代理
if (result.IndexOf(".") == -1) //没有"."肯定是非IPv4格式
result = null;
else
{
if (result.IndexOf(",") = 0)
{
//有",",估计多个代理。取第一个不是内网的IP。
result = result.Replace(" ", "").Replace("'", "").Replace(";", "");
string[] temparyip = result.Split(',');
for (int i = 0; i temparyip.Length; i++)
{
if (IsIPAddress(temparyip[i]))
{
if (!temparyip[i].StartsWith("10.") !temparyip[i].StartsWith("192.168") !temparyip[i].StartsWith("172.16."))
{
result = temparyip[i]; //找到不是内网的地址
break;
}
}
}
}
if (!IsIPAddress(result)) //代理即是IP格式
{
result = null; //代理中的内容 非IP,取IP k
}
}
}
}
else
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.UserHostAddress;
}
if (string.IsNullOrEmpty(result))
{
result = "000.000.000.000";
}
return result;
}
asp.net如何获取服务器ip与mac地址
复制代码 代码示例:private void ButtonIP_Click(object sender, System.EventArgs e) { System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList; if ( addressList.Length1) { TextLIP.Text = addressList[0].ToString(); TextSIP.Text = addressList[1].ToString();}else{TextLIP.Text = addressList[0].ToString(); TextSIP.Text = "没有可用的连接";}}另一种获取服务器的IP地址与MAC地址的方法: 复制代码 代码示例:using System.Management; string stringMAC = ""; string stringIP = ""; ManagementClass MC = new ManagementClass "Win32_NetworkAdapterConfiguration"); ManagementObjectCollection MOC= MC.GetInstances(); foreach(ManagementObject MO in MOC){if ((bool)MO["IPEnabled"] == true){stringMAC += MO["MACAddress"].ToString(); TextMAC.Text = stringMAC.ToString(); string[] IPAddresses = (string[]) MO["IPAddress"]; if(IPAddresses.Length 0) stringIP = IPAddresses[0]; TextIP.Text = stringIP.ToString();}}获取客户端本机的IP地址的方法: 复制代码 代码示例:using System.Net; TextIP.Text=Page.Request.UserHostAddress;获取客户端本机的MAC地址刚复杂一些,需要调用两个API,用ARP协议获取,但也只能获取到同网段机器的MAC,对于跨网段的得利用IP扫描或cmd中nBTstat命令获取MAC地址。
ASP.NET中服务器端如何获取客户端的外网IP
public static IPAddress GetMyselfIP()
{
IPHostEntry ipHost = Dns.Resolve(Dns.GetHostName());
IPAddress ipAddr = ipHost.AddressList[0];
return ipAddr;
}
在客户端上运行这个方法能够获得客户端的IP,然后发到服务器端就成了
关于asp.net服务器ip和ASPNET服务器控件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
本文由admin于2022-12-20发表在靑年PHP官网,如有疑问,请联系我们。
本文链接:https://qnphp.com/post/191719.html