c#/.net提供的方法:把整型值和字符串IP互转!
来源:互联网 发布:薛之谦淘宝店叫什么 编辑:程序博客网 时间:2024/06/14 14:15
.net提供的方法转换IP地址
// 字符串转换为数字
System.Net.IPAddress ipaddress = System.Net.IPAddress.Parse("216.20.222.72");
long dreamduip = ipaddress.Address;// 结果 1222513880
// 数字转换为字符串
System.Net.IPAddress ipaddress = System.Net.IPAddress.Parse(dreamduip.ToString());
string strdreamduip = ipaddress.ToString();
通用转换函数
程序代码
/// <summary>将IP地址格式化为整数型</summary>
/// <param name="ip"></param>
/// <returns></returns>
public static long IpToInt(string ip)
{
char[] dot = new char[] { '.' };
string[] ipArr = ip.Split(dot);
if (ipArr.Length == 3)ip = ip + ".0";
ipArr = ip.Split(dot);long ip_Int = 0;
long p1 = long.Parse(ipArr[0]) * 256 * 256 * 256;
long p2 = long.Parse(ipArr[1]) * 256 * 256;
long p3 = long.Parse(ipArr[2]) * 256;long p4 = long.Parse(ipArr[3]);
ip_Int = p1 + p2 + p3 + p4;return ip_Int;
}
/// <param name="ip"></param>
/// <returns></returns>
public static long IpToInt(string ip)
{
char[] dot = new char[] { '.' };
string[] ipArr = ip.Split(dot);
if (ipArr.Length == 3)ip = ip + ".0";
ipArr = ip.Split(dot);long ip_Int = 0;
long p1 = long.Parse(ipArr[0]) * 256 * 256 * 256;
long p2 = long.Parse(ipArr[1]) * 256 * 256;
long p3 = long.Parse(ipArr[2]) * 256;long p4 = long.Parse(ipArr[3]);
ip_Int = p1 + p2 + p3 + p4;return ip_Int;
}
我们知道 IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。
按照TCP/IP协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。
而c#中int32的数就是四个字节的,但是符号要占掉一位所以就不够了,但是无符号的 UInt32 就没有这样的问题。
所以理论上讲:UInt32是可以完整保存一个IP地址的。那下面的两个方法就是对IP与UInt32之间的互转换。
程序代码
public static string Int2IP(UInt32 ipCode) {
byte a = (byte)((ipCode & 0xFF000000) >> 0x18);
byte b = (byte)((ipCode & 0x00FF0000) >> 0xF);
byte c = (byte)((ipCode & 0x0000FF00) >> 0x8);
byte d = (byte)(ipCode & 0x000000FF);
string ipStr = String.Format("{0}.{1}.{2}.{3}", a, b, c, d);
return ipStr;
}
程序代码
public static UInt32 IP2Int(string ipStr) {
string[] ip = ipStr.Split('.');
uint ipCode = 0xFFFFFF00 | byte.Parse(ip[3]);
ipCode = ipCode & 0xFFFF00FF | (uint.Parse(ip[2]) << 0x8);
ipCode = ipCode & 0xFF00FFFF | (uint.Parse(ip[1]) << 0xF);
ipCode = ipCode & 0x00FFFFFF | (uint.Parse(ip[0]) << 0x18);
return ipCode;
}
- c#/.net提供的方法:把整型值和字符串IP互转!
- c#/.net提供的方法:把整型值和字符串IP互转!
- C/C++整型转字符串的几种方法
- [C/C++] 把一个整型整数转成字符串
- C语言整型和字符串之间的转换
- JAVA中整型和字符串相互转换的方法
- 总结:JAVA中整型和字符串相互转换的方法
- JAVA中整型和字符串相互转换的方法
- JAVA中整型和字符串相互转换的方法
- JAVA中整型和字符串相互转换的方法:
- Android中整型和字符串相互转换的方法
- vb.net和C#.net把字符串与字符码的相互转换
- 整型和字符串的转化
- IP地址转换为整型数字的PHP方法、Asp方法和MsSQL方法、MySQL方法
- JAVA如何将ip字符串转化为整型的工具方法
- objective c 整型和字符串相互转化
- C语言拼接字符串和整型
- twisted 里把远程端点的IP转换成整型
- SAP系统常用变量
- [SPC]生产统计过程控制三
- SQL 10 函数 3 日期时间函数 - 1 日期、时间、日期时间与时间戳
- 实现HTML页面在手机浏览器上全屏的方式
- 看看咱当兵的???看了顶一下!
- c#/.net提供的方法:把整型值和字符串IP互转!
- c#/.net提供的方法:把整型值和字符串IP互转!
- asp jsp 判断操作系统类型 浏览器版本
- 程序员应该知道的几个国外IT网站【转】
- VC:CString用法整理
- 给定一个数组,找出不在数组中的最小的那个数字
- C# 四舍五入算法 ,进位,舍去
- 什么是AD域控制器
- 很有用的