SET NOCOUNT ON; declare  @I_PCity table(IPStart  nvarchar(255), Area   nvarchar(255),CityID int,IPID  int )declare @IPStart nvarchar(255),@diana int,   --存放点@dianb int,@dianc int,@liea bigint,    -- 存放列     @lieb  bigint,@liec bigint,@lied bigint,@intlon bigint   --存放化为的整数insert into  @I_PCity(IPStart, Area, CityID, IPID ) select  IPStart,  Area, CityID, IPID   from I_IPCity (nolock)  where IPID>= 430000   and IPStart is not null and IP3 is null-- while( exists(select top 1 * from @I_PCity))beginset @IPStart= (select top 1 IPStart from @I_PCity  );set @diana= charindex('.',@IPStart)       --第一个点的下标set @dianb= charindex('.',@IPStart, @diana +1 )  --第二个点的下标set @dianc= charindex('.',@IPStart, @dianb  +1 )  --第三个点的下标set @liea  =  SUBSTRING(@IPStart,1,@diana-1)    --第一列的值    set @lieb  =SUBSTRING(@IPStart,@diana+1,@dianb-@diana-1 )--第二列的值       set @liec  =SUBSTRING(@IPStart,@dianb+1,@dianc-@dianb-1 )--第三列的值set @lied  =SUBSTRING(@IPStart,@dianc+1, LEN(@IPStart))--第四列的值set @intlon=  @lied+(@liec*1000)+(@lieb*1000000)+(@liea*1000000000)  --拼为整数update I_IPCity set IP3 =@intlon   where IPID=  (select top 1 IPID from @I_PCity)delete top(1) from @I_PCityend

返回前台所查到的结果:

USE [91hurong]
GO
/****** Object:  StoredProcedure [dbo].[ProIP]    Script Date: 08/13/2015 08:40:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE  [dbo].[ProIP]-- Add the parameters for the stored procedure here@str  varchar(50)
AS
BEGINdeclare @IPStart nvarchar(255), --存放传入的数据@diana int,   --存放点@dianb int,@dianc int,@liea bigint,    -- 存放列     @lieb  bigint,@liec bigint,@lied bigint,@intlon bigint   --存放化为的整数set @IPStart= @str;               --传入的IP'1.11.6.6'-- set @IPStart= '1.11.6.6';  set @diana= charindex('.',@IPStart)       --第一个点的下标set @dianb= charindex('.',@IPStart, @diana +1 )  --第二个点的下标set @dianc= charindex('.',@IPStart, @dianb  +1 )  --第三个点的下标set @liea  =  SUBSTRING(@IPStart,1,@diana-1)    --第一列的值    set @lieb  =SUBSTRING(@IPStart,@diana+1,@dianb-@diana-1 )--第二列的值       set @liec  =SUBSTRING(@IPStart,@dianb+1,@dianc-@dianb-1 )--第三列的值set @lied  =SUBSTRING(@IPStart,@dianc+1, LEN(@IPStart))--第四列的值set @intlon=  @lied+(@liec*1000)+(@lieb*1000000)+(@liea*1000000000)  --拼为整数declare @inta  bigintset @inta=(select top 1  IP3   from I_IPCity  where IP3>@intlon  and IPStart is not null and IPID is not null and IP3 is not null order by IP3 asc)select top 1 * from I_IPCity where IP3<@inta and IPStart is not null and IPID is not null and IP3 is not null  order by IP3 desc    --返回'61.177.117.6'在表中对应的数据 END exec ProIP '61.177.117.6'

说明:

 'Arg.ea'  对应位置:1 2 3 4 5 6charindex('.','Arg.ea') >0   --如果大于零,则表示字符串Area中含有字符串CityName; 此例为truecharindex('.','Arg.ea',2 )  -- 从第二个位置后,也就是从 字母'r'后开始找,先判断 ‘g’是否为‘.’ ,为否;继续判断‘.’是否为‘.’,此表达式为trueSUBSTRING('Arg.ea',1,2)  --截取 字符串 'Arg.ea'中 第一个位置到第二个位置 ;也就是‘Ar’

转载于:https://www.cnblogs.com/woloveprogram/p/4727591.html

IP地址转化为数字,charindex ,SUBSTRING相关推荐

  1. ip转数字 java_Java IP地址转换和数字相互转换算法

    IP转换整数: 1.把IP地址转化为字节数组. 2.通过左移位(< 整数转换IP: 1.将整数值进行右移位操作(>>>),右移24位,再进行与操作符(&)0xFF,得到 ...

  2. IP地址转化(学习笔记)

    1.什么是ip地址 IP地址是一种Internet上的主机编址方式,也称为网际协议地址.  IP地址是任意一台主机在网络中的唯一标识 2. IP地址的分类 1.ipv4,占32位           ...

  3. c语言ip字符串转为数组,C语言 ip地址转换为单个数字

    今天遇到一个面试测试题,如下 请写一段代码,可以将输入为"0.0.0.0"-"255.255.255.255"的字符串转换为int型整数数组. 输入:" ...

  4. ip地址+斜杠数字含义

    我们知道要确定子网需要主机地址和子网掩码,使用这种ip/数字(CIDR)可以获取ip的网段 如192.168.0.0/24 表示ip地址从192.168.0.1开始到192.168.0.254结束(1 ...

  5. mysql日期转换成数字在线转换_MySQL中时间--gt;数字转换和IP地址--gt;数字转换(转) - - ITeye博客...

    本文转载自:   http://wangwei.cao.blog.163.com/blog/static/1023625262010063402377/ 后台有很字段都是采用时间戳的形式,二者如何转换 ...

  6. ping 用数字串代替IP地址

    Ping命令,大家都比较熟悉,它常被用来测试局域网的连通状态."Ping+IP地址"是大家最常用的一种命令格式,但大家是否注意过Ping命令中的IP地址呢?这里面可是有很多学问和讲 ...

  7. IP地址与数字地址相互转换

    /// <summary> /// IP地址转换成数字 /// </summary> /// <param name="addr">IP地址&l ...

  8. 域名转化到IP地址的实现

    http://blog.csdn.net/u011239443/article/details/51655354 在linux中,有一些函数可以实现主机名和地址的转化,最常见的有gethostbyna ...

  9. ip地址转换数字函数 iton_3. IP地址转换函数

    一.字符串表示的IP地址需要被转化为整数(二进制数)方能使用 IPv4地址:点分十进制字符串 IPv6地址:十六进制字符串 有时(如记录日志),我们则要把整数(二进制数)表示的IP地址转化为可读的字符 ...

最新文章

  1. CSS漂亮盒子(上)
  2. 最长的可整合子数组的长度
  3. 《TCP/IP详解》笔记----第四章 ARP协议
  4. U-boot给kernel传参数和kernel读取参数—struct tag
  5. 浅析 Sunday 算法
  6. microsoft office 2007 完全 卸载 工具 来自微软官方
  7. python与数学关系大吗_通过一个简单的数学游戏,清晰了解各大编程语言之间的一些区别...
  8. 使用C#Visual Studio2015编写Android应用程序详细步骤
  9. aws beanstalk mysql_AWS Beanstalk搭建WordPress站点
  10. UML建模工具安装详细教程(StarUML 5.0.2)
  11. 数据挖掘、数据分析以及大数据之间的区别有哪些?
  12. 我的Pocket PC设备可以使用哪些附件?(转)
  13. EtherCAT从站协议栈代码笔记之ecat_def.h
  14. 云计算day04-Docker容器
  15. 网络基础--搭建一个简单的网络
  16. 渗压计的使用安装方法
  17. Hugging Face创始人亲述:一个GitHub史上增长最快的AI项目
  18. fastjson 如何去掉反斜杠
  19. 使用百度人脸识别实现人脸识别后端逻辑
  20. Flash与Flex3结合学习心得体会

热门文章

  1. 转:A/B测试:实现方法
  2. 如何向虚拟机服务器里传文件,怎么往虚拟机复制文件_如何向虚拟机传文件-win7之家...
  3. php 数组降维,php 数组去重的方法参考(一维数组去重、二维数组去重)
  4. python画图如何调整图例位置_Python-如何将图例排除在情节之外
  5. 龙芯派启用串口3-5
  6. linux 搜索 文件 内容,Linux 文件查找及文件内容查找
  7. jspwiki mysql_Wiki.js初体验
  8. 牛逼的程序员,都长什么样?
  9. 程序员进阶架构师路线
  10. Mysql 多实例multi_mysqld_multi多实例运行