【发布时间】:2013-02-11 11:09:15
【问题描述】:
我需要应用 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 类得到的完全不同。
【问题讨论】:
-
它们是完全不同的方法,IP to Decimal 将 IP 地址转换为十进制,而 .Net 方法 System.Net.IPAddress.TryParse 如果它是有效的 IPAddress,则返回 true。
-
您的 C# 代码似乎正在访问并返回一个名为 Address 的 IPAddress 的过时属性。
-
@jeremy 你错过了
out参数。 -
@JeremyThompson 是的,我正在使用 IPAddress.Address 属性来访问 ipaddress 字符串的长值。
-
可能是字节序问题。
标签: c# javascript ip-address