IP Address to Number在Javascript和c#.net中不同
本文关键字:net Javascript Address to Number IP | 更新日期: 2023-09-27 18:01:20
我需要应用IP地址的范围验证,为此我使用了http://www.allredroster.com/iptodec.htm
http://javascript.about.com/library/blipconvert.htm //JAVASCRIPT CODE
function dot2num(dot) {
var d = dot.split('.');
return ((((((+d[0])*256)+(+d[1]))*256)+(+d[2]))*256)+(+d[3]);
}
//C# CODE SERVER SIDE
System.Net.IPAddress ipAdd;
if (System.Net.IPAddress.TryParse(ipAddress, out ipAdd))
return ipAdd.Address;
但是,在客户端返回的值是完全不同的,然后我在服务器端使用IPAddress类。
如何使用以下Javascript函数?
function num2dot(num) {
var d = num%256;
for (var i = 3; i > 0; i--) {
num = Math.floor(num/256);
d = num%256 + '.' + d;
}
return d;
}
如果您对哪个函数返回正确的值有疑问,您可以在http://www.ipaddressguide.com/ip中输入IP地址并验证它。
我会阅读http://social.msdn.microsoft.com/Forums/en/netfxnetcom/thread/9d568a3e-9fbf-4acb-92fc-ff629cd8653f关于这个主题的文章。如果输入不是很具体
最后,我在服务器端做了与IPAddress相同的事情。地址没有返回正确的结果,我不知道为什么,但是有人能告诉我为什么吗?
//WORKING CODE NOW
//JAVASCRIPT CODE
function dot2num(dot) {
var d = dot.split('.');
return ((((((+d[0])*256)+(+d[1]))*256)+(+d[2]))*256)+(+d[3]);
}
//C# CODE SERVER SIDE
function dot2num(dot)
{
var ip = IPAddress.Parse(args.Value);
var ipBytes = ip.GetAddressBytes();
double ipAddress = ipBytes[0] * Math.Pow(256, 3) + ipBytes[1] * Math.Pow(256, 2) + ipBytes[2] * Math.Pow(256, 1) + ipBytes[3];
return ipAddress;
}