一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

C# 获取IP及判断IP是否在区间

时间:2022-06-25 07:53:06 编辑:袖梨 来源:一聚教程网

代码如下 复制代码

///

/// 获取客户端IP

///

///

publicstaticstringGetClientIpAddress()

{

var httpContext = HttpContext.Current;

if(httpContext.Request.ServerVariables ==null)

{

returnnull;

}

var clientIp = httpContext.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ?? httpContext.Request.ServerVariables["REMOTE_ADDR"];

try

{

foreach(var hostAddressinDns.GetHostAddresses(clientIp))

{

if(hostAddress.AddressFamily == AddressFamily.InterNetwork)

{

returnhostAddress.ToString();

}

}

foreach(var hostAddressinDns.GetHostAddresses(Dns.GetHostName()))

{

if(hostAddress.AddressFamily == AddressFamily.InterNetwork)

{

returnhostAddress.ToString();

}

}

}

catch(Exception ex)

{

}

returnclientIp;

}

///

/// ip是否在ip空间内

///

///

///

///

publicstaticBoolean ipExistsInRange(String ip, String ipSection)

{

ipSection = ipSection.Trim();

ip = ip.Trim();

intidx = ipSection.IndexOf('-');

String beginIP = ipSection.Substring(0, idx);

String endIP = ipSection.Substring(idx + 1);

returngetIp2long(beginIP)

}

publicstaticlonggetIp2long(String ip)

{

ip = ip.Trim();

String[] ips = ip.Split('.');

longip2long = 0L;

for(inti = 0; i

{

ip2long = ip2long

}

returnip2long;

}

publicstaticlonggetIp2long2(String ip)

{

ip = ip.Trim();

String[] ips = ip.Split('.');

longip1 = Int64.Parse(ips[0]);

longip2 = Int64.Parse(ips[1]);

longip3 = Int64.Parse(ips[2]);

longip4 = Int64.Parse(ips[3]);

longip2long = 1L * ip1 * 256 * 256 * 256 + ip2 * 256 * 256 + ip3 * 256 + ip4;

returnip2long;

}

热门栏目