IP 地址数值互转,多种方法原创
来源:互联网 发布:听音乐软件哪个好 编辑:程序博客网 时间:2024/05/16 09:06
以下几种算法暂时不知道那种算法效率最快,请高手分析一下。
转载请注明出处:SQL吧技术先锋www.sql8.net http://www.sql8.net/showtopic-414.aspx
作者:杨小勇
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("ip1:" + numtoip1(520193) + "<BR>");
Response.Write("ip2:" + numtoip2(2130706433) + "<BR>");
Response.Write("iptonum1:" + iptonum1("127.0.0.1") + "<BR>");
Response.Write("iptonum2:" + iptonum2("127.0.0.1") + "<BR>");
}
//网上一仁兄的代码很简洁不过再测试192.168.0.1/127.0.0.1等会出现错误,其它大部测试无误不知道为什么,也没有去研究透望高手指点yxy
private long iptonum1(string Ip)
{
//取出IP地址去掉‘.’后的string数组
string[] Ip_List = Ip.Split(".".ToCharArray());
string X_Ip = "";
//循环数组,把数据转换成十六进制数,并合并数组(3dafe81e)
foreach (string ip in Ip_List)
{
X_Ip += Convert.ToInt16(ip).ToString("x");
}
//将十六进制数转换成十进制数
long N_Ip = long.Parse(X_Ip, System.Globalization.NumberStyles.HexNumber);
return N_Ip;
} //按标准 219*256*256*256+159*256*256+68*256+54=3684647990 写出的代码yxy
private long iptonum2(string Ip)
{
//取出IP地址去掉‘.’后的string数组
string[] Ip_List = Ip.Split(".".ToCharArray());
string X_Ip = "";
long N_Ip=0;
for (int i = 0; i<=Ip_List.Length-1; i++)
{
//Response.Write("a" + i.ToString() + ":" + Ip_List[i].ToString()+"<BR>"); //测试用yxy
N_Ip = N_Ip+( Convert.ToInt64(System.Math.Pow(256, 3 - i)) * int.Parse(Ip_List[i].ToString()));
} return N_Ip;
} //按标准 219*256*256*256+159*256*256+68*256+54=3684647990 逆转算法yxy
private string numtoip1(long num)
{
string str = "";
long k;
for (int i = 0; i <= 3; i++)
{
k = (num) / Convert.ToInt32(System.Math.Pow(256, i)) % 256;
str = k.ToString() + str;
if (i < 3)
{
str = "." + str;
}
}
return str.ToString();
} //使用.net命名空间IPAddress类型将数值转成IPyxy
private string numtoip2(long num)
{
string str = "";
IPAddress ip = new IPAddress(num);
string[] a = new string[3];
a = ip.ToString().Split('.');
for (int i = 0; i <= 3; i++)
{
str = a[i].ToString() + str;
if (i < 3)
{
str = "." + str;
}
} return str;
}
转载请注明出处:SQL吧技术先锋www.sql8.net http://www.sql8.net/showtopic-414.aspx
作者:杨小勇
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("ip1:" + numtoip1(520193) + "<BR>");
Response.Write("ip2:" + numtoip2(2130706433) + "<BR>");
Response.Write("iptonum1:" + iptonum1("127.0.0.1") + "<BR>");
Response.Write("iptonum2:" + iptonum2("127.0.0.1") + "<BR>");
}
//网上一仁兄的代码很简洁不过再测试192.168.0.1/127.0.0.1等会出现错误,其它大部测试无误不知道为什么,也没有去研究透望高手指点yxy
private long iptonum1(string Ip)
{
//取出IP地址去掉‘.’后的string数组
string[] Ip_List = Ip.Split(".".ToCharArray());
string X_Ip = "";
//循环数组,把数据转换成十六进制数,并合并数组(3dafe81e)
foreach (string ip in Ip_List)
{
X_Ip += Convert.ToInt16(ip).ToString("x");
}
//将十六进制数转换成十进制数
long N_Ip = long.Parse(X_Ip, System.Globalization.NumberStyles.HexNumber);
return N_Ip;
} //按标准 219*256*256*256+159*256*256+68*256+54=3684647990 写出的代码yxy
private long iptonum2(string Ip)
{
//取出IP地址去掉‘.’后的string数组
string[] Ip_List = Ip.Split(".".ToCharArray());
string X_Ip = "";
long N_Ip=0;
for (int i = 0; i<=Ip_List.Length-1; i++)
{
//Response.Write("a" + i.ToString() + ":" + Ip_List[i].ToString()+"<BR>"); //测试用yxy
N_Ip = N_Ip+( Convert.ToInt64(System.Math.Pow(256, 3 - i)) * int.Parse(Ip_List[i].ToString()));
} return N_Ip;
} //按标准 219*256*256*256+159*256*256+68*256+54=3684647990 逆转算法yxy
private string numtoip1(long num)
{
string str = "";
long k;
for (int i = 0; i <= 3; i++)
{
k = (num) / Convert.ToInt32(System.Math.Pow(256, i)) % 256;
str = k.ToString() + str;
if (i < 3)
{
str = "." + str;
}
}
return str.ToString();
} //使用.net命名空间IPAddress类型将数值转成IPyxy
private string numtoip2(long num)
{
string str = "";
IPAddress ip = new IPAddress(num);
string[] a = new string[3];
a = ip.ToString().Split('.');
for (int i = 0; i <= 3; i++)
{
str = a[i].ToString() + str;
if (i < 3)
{
str = "." + str;
}
} return str;
}
- IP 地址数值互转,多种方法原创
- Java获取IP地址的多种方法
- PHP获取IP地址的多种有效方法
- PHP 获取客户端真实IP地址多种方法小结
- linux下命令取IP地址的多种方法
- [原创]ONVIF WSDL IP地址
- 多种限制ip的方法
- awk:将IP地址转为数值
- ip地址与整型互转各种方法总结
- ip地址与整型互转各种方法总结
- [原创] [CU原创]多种分割WebServer日志的方法
- [原创]-CMD命令设置IP地址
- android 获取ip地址和mac地址的多种方式
- 字符串IP地址转换成IP数值函数
- 字符串IP地址转换成IP数值函数
- IP地址分类方法
- IP地址查看方法.
- 获取IP地址方法
- 系统上线与“炒回锅肉”
- 奥运商机(11)——奥运助推钢企快速发展
- C#中out和ref的区别
- activeMQ4在Linux4中配置成系统服务
- 解决ajax加载的页面js无法找到的问题
- IP 地址数值互转,多种方法原创
- oracle 中Lpad函数 用法
- json example
- 用ADO向Excel批量导入数据
- 国外电子书图站点-大量英文原版电子书下载
- 预留位置
- GPS资料收集
- 北京欢迎你mtv
- 利用swt中的一个获取图片的类SwingResourceManager 来解决将程序打为jar后图片找不着的问题