IP地址转化为数字,charindex ,SUBSTRING
SET NOCOUNT ON;
declare @I_PCity table
(
IPStart nvarchar(),
Area nvarchar(),
CityID int,
IPID int )
declare @IPStart nvarchar(),
@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>= and IPStart is not null and IP3 is null
--
while( exists(select top * from @I_PCity))
begin set @IPStart= (select top IPStart from @I_PCity );
set @diana= charindex('.',@IPStart) --第一个点的下标
set @dianb= charindex('.',@IPStart, @diana + ) --第二个点的下标
set @dianc= charindex('.',@IPStart, @dianb + ) --第三个点的下标 set @liea = SUBSTRING(@IPStart,,@diana-) --第一列的值
set @lieb =SUBSTRING(@IPStart,@diana+,@dianb-@diana- )--第二列的值
set @liec =SUBSTRING(@IPStart,@dianb+,@dianc-@dianb- )--第三列的值
set @lied =SUBSTRING(@IPStart,@dianc+, LEN(@IPStart))--第四列的值
set @intlon= @lied+(@liec*)+(@lieb*)+(@liea*) --拼为整数
update I_IPCity set IP3 =@intlon where IPID= (select top IPID from @I_PCity)
delete top() from @I_PCity
end
返回前台所查到的结果:
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()
AS
BEGIN declare @IPStart nvarchar(), --存放传入的数据
@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 + ) --第二个点的下标
set @dianc= charindex('.',@IPStart, @dianb + ) --第三个点的下标 set @liea = SUBSTRING(@IPStart,,@diana-) --第一列的值
set @lieb =SUBSTRING(@IPStart,@diana+,@dianb-@diana- )--第二列的值
set @liec =SUBSTRING(@IPStart,@dianb+,@dianc-@dianb- )--第三列的值
set @lied =SUBSTRING(@IPStart,@dianc+, LEN(@IPStart))--第四列的值
set @intlon= @lied+(@liec*)+(@lieb*)+(@liea*) --拼为整数 declare @inta bigint
set @inta=(select top 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 * 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' 对应位置
:
charindex('.','Arg.ea') > --如果大于零,则表示字符串Area中含有字符串CityName; 此例为true
charindex('.','Arg.ea', ) -- 从第二个位置后,也就是从 字母'r'后开始找,先判断 ‘g’是否为‘.’ ,为否;继续判断‘.’是否为‘.’,此表达式为true
SUBSTRING('Arg.ea',,) --截取 字符串 'Arg.ea'中 第一个位置到第二个位置 ;也就是‘Ar’
IP地址转化为数字,charindex ,SUBSTRING的更多相关文章
- [转]字符型IP地址转换成数字IP的SQL函数
使用SQL函数可以实现许多的功能,下面为您介绍的是字符型IP地址转换成数字IP的SQL函数示例,供您参考,希望对您学习SQL函数能够有所帮助. /**//*--调用示例 sele ...
- 【Go】IP地址转换:数字与字符串之间高效转换
转载:https://blog.thinkeridea.com/201903/go/ip2long.html IP 地址库中 IP 地址的保存格式一般有两种,一种是点分十进制形式(192.168.1. ...
- 将IP地址转化为整数
$ip = 'IP地址';echo $intip = sprintf('%u',ip2long($ip)); //转换为无符号整型echo long2ip($intip);//将整型转换为ip
- ip地址转化代码实例
/*@author: lgh@ * * */ #include <stdio.h> #include <string.h> #include <unistd.h> ...
- 数字转IP地址函数
--------------------------------------------------------------------- -- Author : htl258(Tony) -- Da ...
- (C#)IP地址与数字地址相互转换
站长网IP查询地址:http://tool.chinaz.com/ip/ 和ip地址转换为数字的工具地址:http://www.msxindl.com/tools/ip/ip_num.asp 可以看到 ...
- 域名转化到IP地址的实现
在linux中,有一些函数可以实现主机名和地址的转化,最常见的有gethostbyname().gethostbyaddr()等,它们都可以实现IPv4和IPv6的地址和主机名之间的转化.其中geth ...
- IP地址与数字地址相互转换
/// <summary> /// IP地址转换成数字 /// </summary> /// <param name="addr">IP地址&l ...
- C# 获取本机IP地址以及转换字符串
/// <summary> /// IP地址转化 /// </summary> /// <param name="ipaddr">整型的IP地址 ...
随机推荐
- Spark Streaming 整合 Kafka
一:通过设置检查点,实现单词计数的累加功能 object StatefulKafkaWCnt { /** * 第一个参数:聚合的key,就是单词 * 第二个参数:当前批次产生批次该单词在每一个分区出现 ...
- 让Kafka在scala里面跑起来
Kafka集群对消息的保存是根据Topic进行归类的,由消息生产者(Producer)和消息消费者(Consumer)组成,另外,每一个Server称为一个Broker(经纪人).对于Kafka集群而 ...
- Wireshark抓本地回环
最近正好要分析下本机两个端口之间通信状况.于是用wireshark抓包分析.对于本地回环要进行一些特殊的设置. 1.通过“运行”---“cmd” 输入“route add [本机IP]mask 255 ...
- Angular ocLazyLoad 与ui-router的配合使用
1.resolve state(配置路由时)的resolve参数: resolve:object,将会被注入controller去执行的函数,<string,function>形式. 基于 ...
- Python 数据清洗--处理Nan
参考:http://blog.sina.com.cn/s/blog_13050351e0102xfis.html https://www.sogou.com/link?url=DOb0bgH2eKh1 ...
- 谈谈网页中的ajax
一个页面上有很多的ajax请求,这样的页面右键查看源文件是没法看到全部的html.事实上,这种网页也是从正常的html页面改造过来的,常用的一个场景是,同一个区域大量循环,在动态页面里(比如jsp等) ...
- day09网络编程
一 操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才 ...
- BJOI2012 最多的方案
BJOI2012 最多的方案 Description 第二关和很出名的斐波那契数列有关,地球上的OIer都知道:F1=1, F2=2, Fi = Fi-1 + Fi-2,每一项都可以称为斐波那契数 ...
- find命令扩展
1.1 方法一 |xargs 通过|xargs将前面命令的执行结果传给后面. [root@znix ~]# find /clsn/ -type f -name "*.sh" |x ...
- 统制Highcharts中x轴和y轴坐标值的密度
统制Highcharts中x轴和y轴坐标值的密度 www.MyException.Cn 发布于:2012-06-26 10:04:13 浏览:688次 1 控制Highcharts中x轴和y轴坐标值的 ...