因为有很多时候需要使用的IP地址并不是点分十进制(如192.168.1.1)格式,而是对应的数值(如3194548456),例如要使用某IP库的时候,IP库里保存的就是IP对应的数值形式,这时候就需要进行转换,在网上找了下,发现资料很少,也有不少人不知道转换的方法,自己写了个转换函数如下,有不知道算法的可以参考一下:
通用方法:
/// <summary>
/// IP地址转换函数
/// </summary>
/// <param name="ip">点分十进制IP</param>
/// <returns>转换后的数值</returns>
protected Int64 GetIpToInt(string ip)
{
string[] arrIP = ip.Split('.');
Int64 IntIP = Int64.Parse(arrIP[0]) * 255 * 255 * 255 + Int64.Parse(arrIP[1]) * 255 * 255 + Int64.Parse(arrIP[2]) * 255 + Int32.Parse(arrIP[3]);
return IntIP;
}
C#中提供的方法:
//字符串转换为数字
System.Net.IPAddress ipaddress = System.Net.IPAddress.Parse("192.168.1.1");
long dreamduip = ipaddress.Address;
//数字转换为字符串
System.Net.IPAddress ipaddress = System.Net.IPAddress.Parse("3194548456");
string strdreamduip = ipaddress.ToString();
本文作者:老徐
本文链接:https://bigger.ee/archives/167.html
转载时须注明出处及本声明