【www.bbyears.com--php常用代码】
代码如下
///
/// 获取客户端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) <= getIp2long(ip) && getIp2long(ip) <= getIp2long(endIP);
}
publicstaticlonggetIp2long(String ip)
{
ip = ip.Trim();
String[] ips = ip.Split('.');
longip2long = 0L;
for(inti = 0; i < 4; ++i)
{
ip2long = ip2long << 8 | Int64.Parse(ips[i]);
}
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;
}