当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL中与IP相关的常见问题

MSSQL
MS SQL Server 2000系统数据类型
SQL Server几个容易出错的数据类型
SQL Server 数据库中关于死锁的分析
站长必备的sql查询语言基础知识
经验分享交流:常用SQL语句技法
SQL SERVER 2000 数据库备份与还原
解决SQL SERVER 2005无法远程连接的问题
SQL Server 安装参考意见
在sqlserver2005中安装sql server 2000的示例数据库northwind
SQL Server 2000 数据库分离与附加
高级自定义查询、分页、多表联合存储过程
SQL Server数据库下教你如何做导库SQL
常用的 MSSQL Server 数据修复命令
SQL存储过程初探
SQL Server存储过程编写经验和优化
卸载SQL Server2000后不能再次安装的问题解决方法
教你安装SQL Server 2005示例数据库
MySQL 的外键与参照完整性: Part 1
SQL Server安装:"安装文件配置服务器失败"的解决方法
SQL Server 数据库文件存放在何处

MSSQL 中的 SQL中与IP相关的常见问题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 56 ::
收藏到网摘: n/a

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