c# 获取客户端ip
2013-04-10 15:56
246 查看
在做wcf时,需要得到客户端的ip。一开始用了几种方法总是不好使。后来在网上找到这个方法可以正确的获得客户端的ip了。
[OperationContract]
public static string GetClientIp()
{
string result = String.Empty;
result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (result != null && result != String.Empty)
{
//可¨¦能¨¹有®D代䨲理¤¨ª
if (result.IndexOf(".") == -1) //没?有®D“¡ã.”¡À肯?定¡§是º?非¤?IPv4格?式º?
result = null;
else
{
if (result.IndexOf(",") != -1)
{
//有®D“¡ã,”¡À,ê?估¨¤计?多¨¤个?代䨲理¤¨ª。¡ê取¨?第̨²一°?个?不?是º?内¨²网ª?的Ì?IP。¡ê
result = result.Replace(" ", "").Replace("'", "");
string[] temparyip = result.Split(",;".ToCharArray());
for (int i = 0; i < temparyip.Length; i++)
{
if (IsIPAddress(temparyip[i]) && temparyip[i].Substring(0, 3) != "10." && temparyip[i].Substring(0, 7) != "192.168" && temparyip[i].Substring(0, 7) != "172.16.")
{
return temparyip[i];
}
}
}
else if (IsIPAddress(result))
return result;
else
result = null;
}
}
string IpAddress = (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != String.Empty) ? HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] : HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
if (null == result || result == String.Empty)
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
if (result == null || result == String.Empty)
result = HttpContext.Current.Request.UserHostAddress;
return result;
}
[OperationContract]
public static string GetClientIp()
{
string result = String.Empty;
result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (result != null && result != String.Empty)
{
//可¨¦能¨¹有®D代䨲理¤¨ª
if (result.IndexOf(".") == -1) //没?有®D“¡ã.”¡À肯?定¡§是º?非¤?IPv4格?式º?
result = null;
else
{
if (result.IndexOf(",") != -1)
{
//有®D“¡ã,”¡À,ê?估¨¤计?多¨¤个?代䨲理¤¨ª。¡ê取¨?第̨²一°?个?不?是º?内¨²网ª?的Ì?IP。¡ê
result = result.Replace(" ", "").Replace("'", "");
string[] temparyip = result.Split(",;".ToCharArray());
for (int i = 0; i < temparyip.Length; i++)
{
if (IsIPAddress(temparyip[i]) && temparyip[i].Substring(0, 3) != "10." && temparyip[i].Substring(0, 7) != "192.168" && temparyip[i].Substring(0, 7) != "172.16.")
{
return temparyip[i];
}
}
}
else if (IsIPAddress(result))
return result;
else
result = null;
}
}
string IpAddress = (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != String.Empty) ? HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] : HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
if (null == result || result == String.Empty)
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
if (result == null || result == String.Empty)
result = HttpContext.Current.Request.UserHostAddress;
return result;
}
相关文章推荐
- c#中获取服务器IP,客户端IP以及其它
- c# 获取客户端ip
- .net(c#)获取客户端真实IP,非代理
- c#中获取服务器IP,客户端IP以及其它
- c#中获取服务器IP,客户端IP以及Request.ServerVariables详细说明
- c#获取客户端IP为何得到的值是服务器IP
- c#中获取服务器IP,客户端IP以及Request.ServerVariables详细说明
- [导入]【原】C#里获取客户端IP,端口号的简单示例
- C#中获取服务器IP,客户端IP以及Request.ServerVariables详细说明
- c#中获取服务器IP,客户端IP以及Request.ServerVariables详细说明
- c# 获取客户端ip、mac、机器名、操作系统、浏览器信息
- c#中获取服务器IP,客户端IP以及Request.ServerVariables详细说明
- C#获得客户端的IP,主机名 获取当前时间
- C# Web 获取客户端IP
- ASP.NET,C#获取客户端IP
- C#获取客户端ip
- c#中获取服务器IP,客户端IP以及其它
- c#中获取服务器IP,客户端IP以及Request.ServerVariables详细说明
- C# 获取本地IP客户端IP地址以及MAC地址
- c#获取客户端IP