【原】IP地址存储问题
今天,Boylee问我知道不知道IP地址如何合理的存储到数据库中?我不知道,然后听他说了思路,记录下来。
1
public class CTrans
2
{
3
/// <summary>
4
/// IP地址转数据
5
/// </summary>
6
/// <param name="strIp">IP地址</param>
7
/// <returns>数据</returns>
8
public static uint IPToData(String strIp)
9
{
10
// 将127.0.0.1 形式的IP地址转换成10进制整数
11
uint[] ip = new uint[4];
12![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
// 找到IP地址字符串中.的位置
14
int position1 = strIp.IndexOf(".");
15
int position2 = strIp.IndexOf(".", position1 + 1);
16
int position3 = strIp.IndexOf(".", position2 + 1);
17![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
// 将每个.之间的字符串转换成整型
19
ip[0] = Convert.ToUInt32(strIp.Substring(0, position1));
20
ip[1] = Convert.ToUInt32(strIp.Substring(position1 + 1, position2-(position1 + 1)));
21
ip[2] = Convert.ToUInt32(strIp.Substring(position2 + 1, position3-(position2 + 1)));
22
ip[3] = Convert.ToUInt32(strIp.Substring(position3 + 1));
23![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
24
// ip0*256*256*256 + ip1*256*256 + ip2*256 + ip3
25
return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3];
26
}
27![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
/// <summary>
29
/// 数据转IP地址
30
/// </summary>
31
/// <param name="uintIP">数据</param>
32
/// <returns>IP地址</returns>
33
public static String DataToIP(uint uintIP)
34
{
35
// 将10进制整数形式转换成127.0.0.1形式的IP地址
36
StringBuilder sb = new StringBuilder("");
37
sb.Append(Convert.ToString(uintIP >> 24));
38
sb.Append(".");
39
sb.Append(Convert.ToString((uintIP & 0x00FFFFFF) >> 16));
40
sb.Append(".");
41
sb.Append(Convert.ToString((uintIP & 0x0000FFFF) >> 8));
42
sb.Append(".");
43
sb.Append(Convert.ToString(uintIP & 0x000000FF));
44
sb.Append(".");
45
return sb.ToString();
46
}
47
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
29
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
31
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
33
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
34
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
35
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
36
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
37
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
38
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
39
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
40
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
42
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
43
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
44
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
45
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
46
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
47
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
前台用类似
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)