从sysprocesses 表中得到网卡的物理地址,怎样转成IP地址呢?

eddiezhuo 2003-10-10 11:05:46
从sysprocesses 表中得到网卡的物理地址,怎样转成IP地址呢?
有没有这样的存储过程或扩展过程?
先谢了。
...全文
172 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
eddiezhuo 2003-10-11
  • 打赏
  • 举报
回复
up
eddiezhuo 2003-10-11
  • 打赏
  • 举报
回复
sysprocesses 中的hostname 电脑名,只有记录查询分析器链接到SQL服务器的计算机名.
eddiezhuo 2003-10-10
  • 打赏
  • 举报
回复
host_name()
App_name()
这两个只能在查询分析器里运行时才可以的得结果,
如果是PB的程序里进行insert, delete or update 等时就无法得到机器名和应用程序名
eddiezhuo 2003-10-10
  • 打赏
  • 举报
回复
但是,当前端的PB程序运行时insert 语句时,在触发器中无法得到IP地址,只得到了物理址。
楼上的两位兄台,你们的方法在SQL 查询分析器里运行INSERT语句才可以得到的。

大家帮帮忙吧,这问题想了很久了。
zjcxc 元老 2003-10-10
  • 打赏
  • 举报
回复
物理地址不能转换成ip地址

可以考虑用ping来实现:

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 'ping tsql'
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
txlicenhe 2003-10-10
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2333/2333320.xml?temp=3.585452E-02

create table #tmp(aa varchar(200))
insert #tmp exec master..xp_cmdshell 'ping tsql'
select top 1 replace(left(aa,charindex(':',aa)-1),'Reply from ','')
from #tmp where aa like 'reply from %:%'

/************* 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 'ping tsql'
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
txlicenhe 2003-10-10
  • 打赏
  • 举报
回复
从sysprocesses中不只是可以得到网卡的物理地址,还可以得到电脑名,
Select @hstname varchar(100)
select @hstname = hostname from master..sysprocesses where ...

--以下用电脑名来得到IP

declare @ip varchar(20),@hst varchar(20),@sql varchar(100)
declare @str varchar(100)
set @str='PING '+@hstname
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
eddiezhuo 2003-10-10
  • 打赏
  • 举报
回复
TO zjcxc(邹建):
不可以改动PB程序的.
zjcxc 元老 2003-10-10
  • 打赏
  • 举报
回复
尝试用PB自身的功能处理吧.
eddiezhuo 2003-10-10
  • 打赏
  • 举报
回复
自已顶一下了。

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧