IP地址转化为数字,charindex ,SUBSTRING
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相关推荐
- ip转数字 java_Java IP地址转换和数字相互转换算法
IP转换整数: 1.把IP地址转化为字节数组. 2.通过左移位(< 整数转换IP: 1.将整数值进行右移位操作(>>>),右移24位,再进行与操作符(&)0xFF,得到 ...
- IP地址转化(学习笔记)
1.什么是ip地址 IP地址是一种Internet上的主机编址方式,也称为网际协议地址. IP地址是任意一台主机在网络中的唯一标识 2. IP地址的分类 1.ipv4,占32位 ...
- c语言ip字符串转为数组,C语言 ip地址转换为单个数字
今天遇到一个面试测试题,如下 请写一段代码,可以将输入为"0.0.0.0"-"255.255.255.255"的字符串转换为int型整数数组. 输入:" ...
- ip地址+斜杠数字含义
我们知道要确定子网需要主机地址和子网掩码,使用这种ip/数字(CIDR)可以获取ip的网段 如192.168.0.0/24 表示ip地址从192.168.0.1开始到192.168.0.254结束(1 ...
- mysql日期转换成数字在线转换_MySQL中时间--gt;数字转换和IP地址--gt;数字转换(转) - - ITeye博客...
本文转载自: http://wangwei.cao.blog.163.com/blog/static/1023625262010063402377/ 后台有很字段都是采用时间戳的形式,二者如何转换 ...
- ping 用数字串代替IP地址
Ping命令,大家都比较熟悉,它常被用来测试局域网的连通状态."Ping+IP地址"是大家最常用的一种命令格式,但大家是否注意过Ping命令中的IP地址呢?这里面可是有很多学问和讲 ...
- IP地址与数字地址相互转换
/// <summary> /// IP地址转换成数字 /// </summary> /// <param name="addr">IP地址&l ...
- 域名转化到IP地址的实现
http://blog.csdn.net/u011239443/article/details/51655354 在linux中,有一些函数可以实现主机名和地址的转化,最常见的有gethostbyna ...
- ip地址转换数字函数 iton_3. IP地址转换函数
一.字符串表示的IP地址需要被转化为整数(二进制数)方能使用 IPv4地址:点分十进制字符串 IPv6地址:十六进制字符串 有时(如记录日志),我们则要把整数(二进制数)表示的IP地址转化为可读的字符 ...
最新文章
- CSS漂亮盒子(上)
- 最长的可整合子数组的长度
- 《TCP/IP详解》笔记----第四章 ARP协议
- U-boot给kernel传参数和kernel读取参数—struct tag
- 浅析 Sunday 算法
- microsoft office 2007 完全 卸载 工具 来自微软官方
- python与数学关系大吗_通过一个简单的数学游戏,清晰了解各大编程语言之间的一些区别...
- 使用C#Visual Studio2015编写Android应用程序详细步骤
- aws beanstalk mysql_AWS Beanstalk搭建WordPress站点
- UML建模工具安装详细教程(StarUML 5.0.2)
- 数据挖掘、数据分析以及大数据之间的区别有哪些?
- 我的Pocket PC设备可以使用哪些附件?(转)
- EtherCAT从站协议栈代码笔记之ecat_def.h
- 云计算day04-Docker容器
- 网络基础--搭建一个简单的网络
- 渗压计的使用安装方法
- Hugging Face创始人亲述:一个GitHub史上增长最快的AI项目
- fastjson 如何去掉反斜杠
- 使用百度人脸识别实现人脸识别后端逻辑
- Flash与Flex3结合学习心得体会
热门文章
- 转:A/B测试:实现方法
- 如何向虚拟机服务器里传文件,怎么往虚拟机复制文件_如何向虚拟机传文件-win7之家...
- php 数组降维,php 数组去重的方法参考(一维数组去重、二维数组去重)
- python画图如何调整图例位置_Python-如何将图例排除在情节之外
- 龙芯派启用串口3-5
- linux 搜索 文件 内容,Linux 文件查找及文件内容查找
- jspwiki mysql_Wiki.js初体验
- 牛逼的程序员,都长什么样?
- 程序员进阶架构师路线
- Mysql 多实例multi_mysqld_multi多实例运行