sql server如何获取客户端ip地址 不太想在前台处理,应为我们这的系统的客户端是由不同厂家开发,想简化他们的开发,最好能在SQL server中直接处理,这样避免客户端程序出现问题。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 create proc GetIP @ClientName varchar(100), @IP varchar(20) outputasdeclare @a varchar(100)create table #(a varchar(8000))set @a='ping '+@ClientNameinsert into # exec master..xp_cmdshell @aselect @ip=substring(a,charindex('[',a)+1,charindex(']',a)-charindex('[',a)-1) from # where charindex('[',a)>0drop table #godeclare @ip varchar(20)exec GetIP '客户机名',@ip outputselect @ip 应该是前台做,客户端你只能获得访问数据库的机器ip,参考下面http://community.csdn.net/Expert/topic/5681/5681306.xml?temp=.1505091但如果是bs版的,不通过前台你就无法获得用户ip 貌似公网的话只用数据库在后台做不行的,我前几天正好在试,数据库自己只能记录MAC地址,如果需要知道IP地址,常用的办法就是调用master..xp_cmdshell ,意思是在cmd框里ping对方的机器名,但是如果公网的话是ping不出的,内网的话可以。所以一直没有找到解决办法。 VBS 写个ping功能的脚本;试试 給你看下,這個不是本人寫的declare @computerName varchar(20),@ip varchar(20) set @computerName=host_name() create table ##(str varchar(100)) exec('insert ## exec master..xp_cmdshell ''ping '+@computerName+'''') select @ip=stuff(str,1,charindex('[',str),'') from ## where ltrim(str) like 'Pinging%' select left(@ip,charindex(']',@ip)-1) drop table ##(13 row(s) affected) -------------------- 192.168.1.210(1 row(s) affected) 对,客户端如果通过路由再连的服务器的话,服务器ping客户端是不通的,所以master..xp_cmdshell 命令根本不管用,我也弄了好久,到现在也没解决这个问题。 高分求一合理的数据库设计。!! 如何在sql server里实现类似mysql的LIMIT start ,limit的sql语句? SQL Server访问ORACLE数据库 个位老大进来帮个忙 关于事件探查器的问题 菜谱、原料、病的SQL编写 关于sql语句,整段调动 ,100分高手笑纳 SOS!!请教各位大虾,如何到入TXT文件到SQL表里,要求读出对应格式??? 请教:请问联接查询和内连接查询有什么区别? 如何格式化输出一个整数列? SQL2005订阅服务器问题:Microsoft SQL Server,错误:22022 Des加密更换密钥后如何对数据库中现有的数据重新加密?
@ClientName varchar(100),
@IP varchar(20) output
as
declare @a varchar(100)create table #(a varchar(8000))
set @a='ping '+@ClientName
insert into # exec master..xp_cmdshell @a
select @ip=substring(a,charindex('[',a)+1,charindex(']',a)-charindex('[',a)-1) from # where charindex('[',a)>0
drop table #go
declare @ip varchar(20)
exec GetIP '客户机名',@ip output
select @ip
http://community.csdn.net/Expert/topic/5681/5681306.xml?temp=.1505091
但如果是bs版的,不通过前台你就无法获得用户ip
給你看下,這個不是本人寫的
declare @computerName varchar(20),@ip varchar(20)
set @computerName=host_name()
create table ##(str varchar(100))
exec('insert ## exec master..xp_cmdshell ''ping '+@computerName+'''')
select @ip=stuff(str,1,charindex('[',str),'')
from ##
where ltrim(str) like 'Pinging%'
select left(@ip,charindex(']',@ip)-1)
drop table ##
(13 row(s) affected)
--------------------
192.168.1.210(1 row(s) affected)