求一算法,将邹键大哥的"IP 地址转换成数字"的sql函数序变成C#的代码(解决立即给分)!!
if exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[f_IP2Int] ') and xtype in (N 'FN ', N 'IF ', N 'TF '))
drop function [dbo].[f_IP2Int]
GO
/*--字符型 IP 地址转换成数字 IP
--邹建 2004.08(引用请保留此信息)--*/
/*--调用示例
select dbo.f_IP2Int( '192.168.0.11 ')
select dbo.f_IP2Int( '12.168.0.1 ')
--*/
CREATE FUNCTION f_IP2Int(
@ip char(15)
)RETURNS bigint
AS
BEGIN
DECLARE @re bigint
SET @re=0
SELECT @re=@re+LEFT(@ip,CHARINDEX( '. ',@ip+ '. ')-1)*ID
,@ip=STUFF(@ip,1,CHARINDEX( '. ',@ip+ '. '), ' ')
FROM(
SELECT ID=CAST(16777216 as bigint)
UNION ALL SELECT 65536
UNION ALL SELECT 256
UNION ALL SELECT 1)A
RETURN(@re)
END
GO
if exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[f_Int2IP] ') and xtype in (N 'FN ', N 'IF ', N 'TF '))
drop function [dbo].[f_Int2IP]
GO
------解决方案--------------------楼主是想要C#下实现这一功能吗,看看这是不是你要的结果
简单点的
IPAddress ip_addr = IPAddress.Parse( "192.168.0.1 ");
uint ip_num = (uint)IPAddress.NetworkToHostOrder((int)ip_addr.Address);
输出:3232235521
比较全的一个方法,参考
http://bbs.114xp.net/blog.php?tid=1204
------解决方案--------------------http://bbs.114xp.net/blog.php?tid=1204