IP转为bigint

create function [dbo].[iptobigint](@ipinfo varchar(16))
returns bigint
as
begin
declare @ret bigint
if PATINDEX('%[^.0-9]%',@ipinfo)>0
return null
if @ipinfo not like '%[0-9].%[0-9].%[0-9].%[0-9]'
return null
set @ret=0
select @ret=@ret+left(@ipinfo,CHARINDEX('.',@ipinfo+'.')-1)*ID,
@ipinfo=stuff(@ipinfo,1,CHARINDEX('.',@ipinfo+'.'),'')
from (
SELECT ID=CAST(256*256*256 AS BIGINT)
UNION ALL SELECT 256*256
UNION ALL SELECT 256
UNION ALL SELECT 1)a
return @ret
end

bigint转为ip

CREATE function [dbo].[inttoip](@ipint bigint)
returns varchar(15)
as
begin
declare @ip varchar(15)
set @ip=''
select @ip=@ip+'.'+cast(@ipint/ID as varchar)
,@ipint=@ipint%ID
from (
SELECT ID=CAST(256*256*256 AS BIGINT)
UNION ALL SELECT 256*256
UNION ALL SELECT 256
UNION ALL SELECT 1)a
return stuff(@ip,1,1,'')
end

查看定义

print object_definition(object_id('dbo.iptobigint'))

IP与bigint互转的更多相关文章

  1. 【python】点分十进制ip与数字互转

    来源:http://www.cnblogs.com/vovlie/archive/2012/10/17/2727029.html 利用lambda表达式,非常简洁 int_to_ip = lambda ...

  2. Ip和long互转

    // <summary> /// 将127.0.0.1形式的IP地址转换成十进制整数 /// </summary> /// <param name="strIp ...

  3. MySQL怎样存储IP地址 IP转数字 互转

    MySQL怎样存储IP地址 - cn三少 - 博客园 https://www.cnblogs.com/cnsanshao/p/3326648.html

  4. mysql实现IP与整形互转

  5. TCP/IP协议——TCP/IP协议栈及框架

    TCP/IP协议同ISO/OSI模型一样,也可以安排成栈形式.但这个栈不同于ISO/OSI版本,比ISO/OSI栈少,所以又称之为短栈.另外,需要知道的是:TCP/IP协议栈只是许多支持ISO/OSI ...

  6. 内网IP和外网IP

    1.什么是内网内网就是局域网,比如一个公司的局域网,局域网内每台计算机的IP地址是互异的,但不同局域网内的IP是可以相同的.2.什么是外网外网就是互联网,内网的所有计算机都是连接到一个外网IP,通过外 ...

  7. BigInt的实现——C++编程风格读书笔记

    C++编程风格这本书前面一些章节都觉得很简明易懂,但是读到效率这一章是才充分认识到读别人的代码还是很痛苦的一件事.书中给出的需要改进的初始类如下: class BigInt { private: ch ...

  8. IP地址在mysql的存储

    因为int比varchar(15)更高效,且php和mysql都有ip和int互转的函数,所以在ip地址在mysql中用int存储最优. mysql存储这个值是字段需要用int UNSIGNED.不用 ...

  9. 没有IP地址的主机怎样保持IP层联通

    在<两台不同网段的PC直连能否够相互ping通>一文中,我有点像在玩旁门左道,本文中.我继续走火入魔.两台机器,M1和M2,各自有一个网卡eth0,配置例如以下:M1的配置:eth0上不配 ...

  10. Ip2Region IP转化地址位置

    Ip2Region有中文和数据结构支持,是一个很好的第三方ip转换工具. java: <dependency> <groupId>org.lionsoul</groupI ...

随机推荐

  1. imputation文献-A systematic evaluation of single-cell RNA-sequencing imputation methods

    文章题目 A systematic evaluation of single-cell RNA-sequencing imputation methods 中文名: 单细胞RNA测序插补方法的系统评价 ...

  2. 访问网络共享(net use):发生系统错误 67。找不到网络名。

    使用\\ip访问对方共享目录或使用net use \\ip 时: 发生系统错误 67.找不到网络名. 以下几项启用: 1,网卡勾选"Microsoft网络客户端". 2,启用服务& ...

  3. Java方法之稀疏数组

    稀松数组 当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组. 稀疏数组的处理方式是: 1.记录数组一共有几行几列,有多少个不同值 2.把具有不同值的元素和行列及值记录在一 ...

  4. oracle 存储过程-动态行转列,解决。

    包头 create or replace package pro_test as TYPE out_cursor IS REF CURSOR; procedure Alarm_ContentsByTi ...

  5. centos-7实现批量ping

    批量ping 脚本 新接手了一个项目,10多个网段,500多机器,看自己机器可以连上多少服务器,一个个ping不符合我们的作风,因此百度了下大神的脚本,按自己的风格修改了,于是有了如下的脚本. 脚本如 ...

  6. 【SQL Server】numeric——精确数字的数据类型

    NUMERIC数据类型是一种精确数字数据类型. numeric是标准sql的数据类型,格式是numeric(m,n).最多精确位数为38位,其中m表示总位数,n表示保留的小数点位数. 参数 含义 默认 ...

  7. css实现图片在div中居中的效果

    利用图片的margin属性将图片水平居中,利用div的padding属性将图片垂直居中. 结构代码同上: css代码如下: div {width:300px; height:150px; paddin ...

  8. redis统计用户活跃数量

    1.说明,redis 位图存储节省内存,用户id:156,1333; 如果用户登录,根据日期存储为1 setbit 20209001 156 1 ;//id为156的用户在1月1号登录了 setbit ...

  9. [JSOI2014]宅男计划

    Description: 外卖店一共有N种食物,分别有1到N编号.第i种食物有固定的价钱Pi和保质期Si.第i种食物会在Si天后过期.JYY是不会吃过期食物的. 比如JYY如果今天点了一份保质期为1天 ...

  10. MySQL数据库架构&SQL注入漏洞

    1.查找zblog数据库中有哪些表