C#获取IP和整数IP方法

体验: http://tool.hovertree.com/info/ip/

代码如下:
 1 using System;
 2 using System.Text;
 3 using System.Text.RegularExpressions;
 4 using System.Web;
 5 
 6 namespace HoverTree.HoverTreeFrame.HvtNet
 7 {
 8 public class HoverTreeIP
 9 {
10 /// <summary>
11 /// 获取真实IP
12 /// </summary>
13 /// <returns></returns>
14 public static string GetHoverTreeIp()
15 {//http://tool.hovertree.com/info/ip/
16 string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
17 if (null == result || result == String.Empty)
18 {
19 result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
20 }
21 if (null == result || result == String.Empty)
22 {
23 result = HttpContext.Current.Request.UserHostAddress;
24 }
25 return result;
26 }
27 
28 public static bool HvtIsIP(string ip)
29 {
30 return Regex.IsMatch(ip, @"^((23[0-3]|1\d{2}|[1-9]\d|[1-9])\.)((25[0-5]|2[0-4]\d|1?\d{1,2})\.){2}((25[0-5]|2[0-4]\d|1?\d{1,2}))$") ;
31 }
32 
33 /// <summary>
34 /// 把IP地址转为整数 hovertree.com
35 /// </summary>
36 /// <param name="ip"></param>
37 /// <returns></returns>
38 public static long HvtIpToLong(string ip)
39 {
40 char[] separator = new char[] { '.' };
41 string[] items = ip.Split(separator);
42 return long.Parse(items[0]) << 24
43 | long.Parse(items[1]) << 16
44 | long.Parse(items[2]) << 8
45 | long.Parse(items[3]);
46 }
47 
48 /// <summary>
49 /// 把整数转为IP 何问起
50 /// </summary>
51 /// <param name="ipLong"></param>
52 /// <returns></returns>
53 public static string HvtLongToIp(long ipLong)
54 {//http://hovertree.com/hvtart/bjae/cn5qrmxw.htm
55 StringBuilder sb = new StringBuilder();
56 sb.Append((ipLong >> 24) & 0xFF).Append(".");
57 sb.Append((ipLong >> 16) & 0xFF).Append(".");
58 sb.Append((ipLong >> 8) & 0xFF).Append(".");
59 sb.Append(ipLong & 0xFF);
60 return sb.ToString();
61 }
62 }

类的代码将发布在HoverTreeCMS项目中。

C#获取IP和整数IP方法_第1张图片

ASP.NET开源CMS http://www.cnblogs.com/sosoft/p/cms.html

开发技术文章收集 http://www.cnblogs.com/sosoft/p/kaifajishu.html

你可能感兴趣的:(C#获取IP和整数IP方法)