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

-- 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. mysql日期格式化

    DATE_FORMA T(date, format) 根据格式串format 格式化日期或日期和时间值date,返回结果串. 可用DATE_FORMAT( ) 来格式化DATE 或DATETIME 值 ...

  2. LNMP源码编译安装(centos7+nginx1.9+mysql5.6+php7)

    1.准备工作: 1)把所有的软件安装在/Data/apps/,源码包放在/Data/tgz/,数据放在/Data/data,日志文件放在/Data/logs,项目放在/Data/webapps, mk ...

  3. 简单实用的Log4net帮助类

    一直使用Log4net,进行日志记录.今天把实用的帮助类,在博客园进行一下公布 首先,添加一个log4net配置文件 <?xml version="1.0"?> < ...

  4. Two-Pointer 之 Run Length Coding (RLC)

    游程编码(Run Length Coding, RLC)是串处理中常见的预处理方法.其写法是典型的双指针(Two-Pointer).下面总结其写法1.输入为一串整数可以不把整数存在数组里

  5. openerp7 时区问题

    由于目前openerp 的时区,读取的是UTC 时间,而我国本地时间比UTC 快8小时,这个问题就导致:写入数据库的时候时间相差8小时,以及Openerp日志输出时间格式也相差8小时和 前端显示时间的 ...

  6. iOS7时代我们用什么来追踪和识别用户?

    要识别用户,首先就是要选择一个标识符,通过这个标识符来识别这个用户的设备(而不是用户),这个标识符要能够保证一个设备上返回的值是一样的,并且在其他设备上不会出现相同的值. 在iOS7之前,曾经有过很多 ...

  7. js 闭包 理解

    1.什么是闭包 定义:是指有权访问另一个函数作用域中的变量的函数 创建闭包:在一个函数内部创建另一个函数 基本特点 在返回的匿名函数中 可以调用外部函数的变量 如下例中所示 内部函数(匿名函数) 可以 ...

  8. jQuery1.11源码分析(1)-----Sizzle源码概览[原创]

    最近在啃jQuery1.11源码,上来就遇到Sizzle这个jQuery的大核心,虽然已经清楚了Sizzle的用途,先绕过去也没事,但明知山有虎偏向虎山行才是我们要做的. 本文面向的阅读对象:正在学习 ...

  9. APP常用字体

    font-family:Microsoft YaHei,Helvitica,Verdana,Tohoma,Arial,san-serif;

  10. 问题--feed列表有新闻重复的问题

    1. 经常有运营反应,客户端展示的feed列表有重复的问题. 重复问题分为两种,一种是两条新闻标题类似,另一种是两条新闻标题是完全相同. (1)标题类似 原来过滤的逻辑,是两个标题完全相等,才认为两条 ...