-2
我需要创建一个函数,可以将IPv6地址转换为其数字表示。ColdFusion IPv6到128位无符号int
使用IPv4非常简单,因为它使用32位无符号整数来表示数字。 IPv6由128位无符号整数表示。内置的ColdFusion位逻辑函数使用的数量太大。
该函数必须利用底层Java系统进行转换。
需要一个函数来执行相反:ColdFusion 128-bit unsigned int to IPv6
我需要创建一个函数,可以将IPv6地址转换为其数字表示。ColdFusion IPv6到128位无符号int
使用IPv4非常简单,因为它使用32位无符号整数来表示数字。 IPv6由128位无符号整数表示。内置的ColdFusion位逻辑函数使用的数量太大。
该函数必须利用底层Java系统进行转换。
需要一个函数来执行相反:ColdFusion 128-bit unsigned int to IPv6
这是我写的改造IPv6地址为128位无符号整数功能。
<cffunction name="IPv6ToUInt128" returntype="numeric" output="no" access="public" hint="returns uint128 number for IPv6 address">
<cfargument name="vcIPv6" type="string" required="yes" hint="IPv6 address">
<cfif arguments.vcIPv6 EQ "">
<cfreturn 0>
</cfif>
<cfset local['javaMathBigInteger'] = CreateObject("java", "java.math.BigInteger")>
<cfset local['javaNetInetAddress'] = CreateObject("java", "java.net.InetAddress")>
<cftry>
<cfset local['uint128'] = local.javaMathBigInteger.init(1, local.javaNetInetAddress.getByName(arguments.vcIPv6).getAddress()).toString()>
<cfreturn local.uint128>
<cfcatch type="any">
<cfreturn 0>
</cfcatch>
</cftry>
</cffunction>
如果您有任何建议来改善此代码,请发表评论。
这应该是'
http://codereview.stackexchange.com/也许? – Henry
@ScottJibben - 不知道为什么所有的反对票,但是......可能会重复上述所以听起来更像是“问题”?即“我试图做X并尝试代码Y代码,但得到的结果是Z而不是{空白}”。这可能会更适合S.O.的格式。 – Leigh