---------------------------------------------------------------------

-- Author : htl258(Tony)

-- Date   : 2010-06-19 10:34:31

-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)

--          Jul  9 2008 14:43:34

--          Copyright (c) 1988-2008 Microsoft Corporation

--          Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 2)

-- Blog   : http://blog.csdn.NET/htl258

-- Subject: 数字转IP地址函数

---------------------------------------------------------------------

--数字转IP地址函数:

IF OBJECT_ID('dbo.fn_IP2Str')>0

DROP FUNCTION dbo.fn_IP2Str

Go

CREATE FUNCTION [dbo].[fn_IP2Str] (

@InIP BIGINT

)

RETURNS NVARCHAR(15)

AS

BEGIN

IF @InIP IS NULL

RETURN '0.0.0.0'

DECLARE @ip BIGINT

SET @ip = @InIP

SET @ip = @ip + 0x100000000

RETURN

CAST(((@ip & 0xff000000) / 0x1000000) AS NVARCHAR(3)) + '.' +

CAST(((@ip & 0xff0000) / 0x10000) AS NVARCHAR(3)) + '.' +

CAST(((@ip & 0xff00) / 0x100) AS NVARCHAR(3)) + '.' +

CAST((@ip & 0xff) AS NVARCHAR(3))

END

GO

--调用示例:

SELECT dbo.fn_IP2Str(4294967295)

/*

---------------

255.255.255.255

(1 行受影响)

*/

SELECT dbo.fn_IP2Str(0)

/*

---------------

0.0.0.0

(1 行受影响)

*/

--附:以下转自邹建

--ip地址与数字相互转换的sql函数

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('255.255.255.255')

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

/*--数字 IP   转换成格式化 IP   地址

--邹建 2004.08(引用请保留此信息)--

*/

/*--调用示例

select dbo.f_Int2IP(4294967295)

select dbo.f_Int2IP(212336641)

--*/

CREATE FUNCTION f_Int2IP

(

@IP BIGINT

)

RETURNS VARCHAR(15)

AS

BEGIN

DECLARE @re VARCHAR(16)

SET @re = ''

SELECT @re = @re+'.'+CAST(@IP/ID AS VARCHAR), @IP = @IP%ID

FROM (

SELECT ID = CAST(16777216 AS BIGINT)

UNION ALL   SELECT 65536

UNION ALL   SELECT 256

UNION ALL   SELECT 1

)a

RETURN(STUFF(@re, 1, 1, ''))

END

GO

select dbo.f_Int2IP(333444343)

/*

19.223.244.247

*/

数字转IP地址函数的更多相关文章

  1. Delphi获取公网IP地址函数

    uses IdHTTP; function GetPublicIP: string; var strIP, URL: string; iStart, iEnd: Integer; MyIdHTTP: ...

  2. (C#)IP地址与数字地址相互转换

    站长网IP查询地址:http://tool.chinaz.com/ip/ 和ip地址转换为数字的工具地址:http://www.msxindl.com/tools/ip/ip_num.asp 可以看到 ...

  3. IP地址与域名的关系

    1.IP地址:IP地址是用来唯一标识互联网上计算机的逻辑地址,让电脑之间可以相互通信. 每台连网计算机都依靠IP地址来互相区分.相互联系 2.域名:由于IP地址是数字标识,使用时难以记忆和书写,因此在 ...

  4. linux下列出所有连接到你的Server的IP地址

    linux下列出所有连接到你的Server的IP地址 最近要做一个检查所有连接到主机的IP的脚本,google到一篇老外写的文章 <List all IP addresses connected ...

  5. leetcode 93 复原IP地址

    IP地址,分成四段,每段是0-255,按照每段的长度分别为1,2,3下一段长度分别1,2,3再下一段......进行递归遍历,能满足条件的假如res中.比较难想到的就是假如有一段是三位的010是不符合 ...

  6. ip地址、域名、DNS、URL(即网址)的区别与联系

    域名和ip ================================================================ 我们也知道每一台机都有一个唯一ip地址, 特别难记,所以出 ...

  7. 什么是 IP 地址 – 定义和解释

    IP 地址定义 IP 地址是一个唯一地址,用于标识互联网或本地网络上的设备.IP 代表"互联网协议",它是控制通过互联网或本地网络发送的数据格式的一组规则. 本质上,IP 地址是允 ...

  8. [转]字符型IP地址转换成数字IP的SQL函数

    使用SQL函数可以实现许多的功能,下面为您介绍的是字符型IP地址转换成数字IP的SQL函数示例,供您参考,希望对您学习SQL函数能够有所帮助.      /**//*--调用示例       sele ...

  9. 验证中文、英文、电话、手机、邮箱、数字、数字和字母、Url地址和Ip地址的正则表达式

    Helper类代码 public class Helper { #region 单列循环 private Helper() { } private static Helper instance = n ...

随机推荐

  1. 【Codeforces715C&716E】Digit Tree 数学 + 点分治

    C. Digit Tree time limit per test:3 seconds memory limit per test:256 megabytes input:standard input ...

  2. Akka框架使用注意点

    1.mailbox Akka的每个actor默认有一个mailbox,按照FIFO顺序单线程处理.在抛出异常导致父actor根据设置的监管策略执行重启或恢复操作时,会从触发异常的消息的后续消息开始处理 ...

  3. Python 面向对象 基础

    编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...

  4. Nginx编译配置杂记

    1.http://nginx.org/download/nginx-1.6.3.tar.gz 2. [root@track nginx-1.6.3]#./configure --prefix=/usr ...

  5. C# Chart控件,chart、Series、ChartArea曲线图绘制的重要属性

    http://blog.sina.com.cn/s/blog_621e24e20101cp64.html 为避免耽误不喜欢这种曲线图效果的亲们的时间,先看一下小DEMO效果图: 先简单说一下,从图中可 ...

  6. WEKA使用

    参考 http://bbs.middleware123.com/thread-24052-1-1.html  使用Weka进行数据挖掘 http://quweiprotoss.blog.163.com ...

  7. linux中ls命令

    ls跟dos下的dir命令是一样的都是用来列出目录下的文件 ls参数: -a: ls -a 列出文件下所有的文件,包括以"."开头的隐藏文件(linux下文件隐藏文件是以.开头的, ...

  8. 面试题目——《CC150》递归与动态规划

    面试题9.1:有个小孩正在上楼梯,楼梯有n个台阶,小孩一次可以上1阶.2阶或者3阶.实现一个方法,计算小孩有多少种上楼梯的方式. 思路:第4个数是前三个数之和 注意:能不能使用递归,能不能建立一个很大 ...

  9. github上readme.md 格式

    参考:https://github.com/guoyunsky/Markdown-Chinese-Demo/edit/master/README.md

  10. [Head First设计模式]山西面馆中的设计模式——观察者模式

    系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 引言 不知不自觉又将设计模式融入生活了,吃个饭也不得安生,也发现生活中的很多场景,都可以用设计模式来模拟.原来设计模式就在 ...