SQL中与IP相关的常见问题

问题

1:得到客户端的IP地址
/************* IP  **************/
declare @ip varchar(20),@hst varchar(20),@sql varchar(100)
declare @str varchar(100)
set @str='PING '+Host_Name()
create table #tmp(aa varchar(200))
insert #tmp exec master..xp_cmdshell @str
select top 1 @ip = replace(left(aa,charindex(':',aa)-1),'Reply from ','')
   from #tmp where aa like 'reply from %:%'
drop table #tmp
select @ip

2:得到网卡的物理地址
create table #tb(re varchar(255))
insert into #tb exec master..xp_cmdshell 'ipconfig /all'

select 网卡物理地址=substring(re,charindex(':',re)+1,255) from #tb where re like '%Physical Address. . . . . . . . . :%'

drop table #tb

3:    将IP地址段转成每三位用点号分开    
create function getIP(@a varchar(15))
returns varchar(15)
As
begin
declare @s varchar(15)
set @s = ''
while charindex('.',@a) > 0
begin
 set @s = @s + right('000' + left(@a,charindex('.',@a)),4)
 set @a = right(@a,len(@a)-charindex('.',@a))
end
set @s = @s + right('000' + @a,3)
return @s
end

/*
Select dbo.getIP('202.1.110.2')
---------------
202.001.110.002

(所影响的行数为 1 行)
*/
--drop function getIP

时间: 2024-11-30 23:38:51

SQL中与IP相关的常见问题的相关文章

asp.net mvc中,ip怎么传入sql数据库库

问题描述 asp.net mvc中,ip怎么传入sql数据库库 asp.net mvc中,我在control中获取了ip地址,但是怎么传入sql数据库呢?新手,只知道怎么提交用户填写的表单里的数据... 解决方案 假设你用的是ef一类的框架,那么xxxDataEntites db = new xxxDataEntites();db.表.Add(new 实体 { ip = 你获得的ip });db.SaveChanges(); 解决方案二: ajax啊,你给他绑到用户点击的地方 解决方案三: 在数

sql-MS SQL怎么根据表名查询表中的字段相关信息

问题描述 MS SQL怎么根据表名查询表中的字段相关信息 MS SQL怎么根据表名查询表中的字段相关信息,包括字段的名称,类型,备注信息 select syscolumns.name,systypes.name as type,(select isnull(value,'') from sys.extended_properties ex_p where ex_p.minor_id=0 and ex_p.major_id=sysobjects.id) as TableDemo ,ext.valu

【大数据技巧】MaxCompute中实现IP地址归属地转换

免费开通大数据服务:https://www.aliyun.com/product/odps 大数据平台的成熟使得更多种类的非结构化.半结构化的数据分析成为可能,其中应用非常广泛的一种场景就是日志分析.在日志类型数据的清洗转换过程中把IP地址转换为归属地又是极为常见的一种场景.那么利用MaxCompute如何实现IP地址向归属地的转换呢? 俗话说:巧妇难为无米之炊,要实现IP地址与归属地的转换必须要有IP地址库,不过好在互联网上已经有一些资源,而且还提供免费版本的IP数据库下载详见:www.ipi

SQL Report Builder 报表里面的常见问题分析_MsSql

一 SQL报表常常会遇到在表格中的相除,如果分母为零,一般会显示错误号,我们可以这么处理:(加上是A/B) =A / iif(B=0,99999999999999, B) 但是我们不能这么写: =iif(B=0,0,A/B)  //我们不能这么写,会产生BUG,至于什么BUG,你们可以自己试试 二 我们假设报表中的某一个格子的名字为A,我们在A中需要引用另一个格子B的值,在这种情况下,我们通常会把B中的计算公式再次引用在A中复制一遍,这样很导致很麻烦. 我们可以在A中直接这么写: ReportI

SQL中两台服务器间使用连接服务器

服务器   1:执行另一服务器上的存储过程 exec OPENDATASOURCE(         'SQLOLEDB',         'Data Source=远程ip;User ID=sa;Password=密码'         ).库名.dbo.存储过程名 2:将资料插入另一服务器上的表中 select * into 本地库名..表名 from OPENDATASOURCE(         'SQLOLEDB',         'Data Source=远程ip;User ID

SQL 中常见的系统存储过程

原文:SQL 中常见的系统存储过程 -- 来源于网络 -- 更详细的介结参考联机帮助文档  xp_cmdshell --*执行DOS各种命令,结果以文本行返回.  xp_fixeddrives --*查询各磁盘/分区可用空间  xp_loginconfig --*报告SQL Server 实例在Windows 上运行时的登录安全配置  xp_logininfo --*返回有关Windows 认证登录的信息.  xp_msver --*返回有关Microsoft SQL Server 的版本信息

sql存储过程实例与相关基础知识

先看一下存储过程的相关知识吧 一.创建存储过程 create procedure 存储过程名称 参数列表 as begin -- end 二.调用存储过程 call 存储过程名称() 三.删除存储过程 drop procedure 存储过程名称 注意:不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程. 四.其他常用命令 1.show procedure status 显示数据库中所有存储过程基本信息 2.show create procedure 存储过程名称 显示某个存储过程详细

Spark SQL中的DataFrame

在2014年7月1日的 Spark Summit 上,Databricks 宣布终止对 Shark 的开发,将重点放到 Spark SQL 上.在会议上,Databricks 表示,Shark 更多是对 Hive 的改造,替换了 Hive 的物理执行引擎,因此会有一个很快的速度.然而,不容忽视的是,Shark 继承了大量的 Hive 代码,因此给优化和维护带来了大量的麻烦.随着性能优化和先进分析整合的进一步加深,基于 MapReduce 设计的部分无疑成为了整个项目的瓶颈. 详细内容请参看 Sh

《SQL与关系数据库理论——如何编写健壮的SQL代码》一2.7 SQL中的类型检查和型转

2.7 SQL中的类型检查和型转 SQL只支持弱形式的强类型化(如果你明白我的意思的话).具体说包括: BOOLEAN值只能赋值到BOOLEAN变量,并只能和BOOLEAN值比较. 数字值只能赋值给数值变量,并且只能与数字值比较(此处的"数字"(numeric)指的是SMALLINT.BIGINT.NUMERIC.DECIMAL 或者FLOAT ). 字符串值只能赋值给字符串变量并且只能与字符串值进行比较(此处的"字符串"指的是CHAR.VARCHAR或者CLOB)