获取IP地址
来源:互联网 发布:c语言软件开发 编辑:程序博客网 时间:2024/06/05 17:09
以下的几种方法是通过网上搜集以及加以整理过后所作的记录!
EXEC xp_cmdshell 'ipconfig'
GO
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE NAME = 'SP_GetHostIP' AND OBJECTPROPERTY(ID, 'IsProcedure') = 1 )
DROP PROCEDURE SP_GetHostIP
GO
/******************************************************************************
功能:获取当前数据库所在的IP地址
日期:2013-06-19
--调用示例DECLARE @IP VARCHAR(15)
EXEC SP_GetHostIP @IP OUTPUT
SELECT @IP
******************************************************************************/
CREATE PROC SP_GetHostIP (@IP VARCHAR(15) OUTPUT )
AS
DECLARE @CMD VARCHAR(200) ;
DECLARE @IPTemp TABLE (IPText VARCHAR(255) )
SET @CMD = 'ping -n 1 ' + HOST_NAME() ;
INSERT @IPTemp
EXEC master..xp_cmdshell @CMD ;
SELECT @IP = ISNULL(SUBSTRING(IPText, ( CHARINDEX('[', IPText) + 1 ),
( CHARINDEX(']', IPText) - ( CHARINDEX('[',
IPText) + 1 ) )),
'')
FROM @IPTemp
WHERE CHARINDEX('[', IPText) > 0 ;
GO
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE NAME = 'SP_GetHostIP' AND OBJECTPROPERTY(ID, 'IsProcedure') = 1 )
DROP PROCEDURE SP_GetHostIP
GO
/******************************************************************************
功能:获取当前数据库所在的IP地址
日期:2013-06-19
备注:此方法不建议使用,耗时相对较长
--调用示例
DECLARE @IP VARCHAR(15)
EXEC SP_GetHostIP @IP OUTPUT
SELECT @IP
******************************************************************************/
CREATE PROC SP_GetHostIP ( @IP VARCHAR(15) OUTPUT )
AS
BEGIN
DECLARE @ComputerNameStr VARCHAR(100)
IF OBJECT_ID('##IPTemp') IS NOT NULL
DROP TABLE ##IPTemp
CREATE TABLE ##IPTemp (IPText VARCHAR(100))
SET @ComputerNameStr = HOST_NAME()
EXEC('INSERT ##IPTemp EXEC master..xp_cmdshell ''ping ' + @ComputerNameStr + '''')
SELECT @IP = STUFF(IPText, 1, CHARINDEX('[', IPText), '')
FROM ##IPTemp
WHERE LTRIM(IPText) LIKE 'Pinging%'
SET @IP = LEFT(@IP, CHARINDEX(']', @IP) - 1)
DROP TABLE ##IPTemp
END
GO
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE ID = OBJECT_ID(N'[dbo].[p_getlinkinfo]') AND OBJECTPROPERTY(ID, N'IsProcedure') = 1)
DROP PROCEDURE [dbo].[p_getlinkinfo]
GO
/******************************************************************************
--获取连接SQL服务器的信息
所有连接本机的:操作的数据库名,计算机名,用户名,网卡物理地址,IP地址,程序名
--邹建 2003.11(引用请保留此信息)--
--调用示例
--显示所有本机的连接信息
exec p_getlinkinfo
--显示所有本机的连接信息,包含ip地址
exec p_getlinkinfo @includeip=1
--显示连接指定数据库的信息
exec p_getlinkinfo 'SY_00_JHWY'
******************************************************************************/
CREATE PROCEDURE p_getlinkinfo
@dbname SYSNAME = NULL , --要查询的数据库名,默认查询所有数据库的连接信息
@includeip BIT = 0 --是否显示IP地址,因为查询IP地址比较费时,所以增加此控制
AS
DECLARE @dbid INT
SET @dbid = DB_ID(@dbname)
CREATE TABLE #tb
(
id INT IDENTITY(1, 1) ,
dbname SYSNAME ,
hostname NCHAR(128) ,
loginname NCHAR(128) ,
net_address NCHAR(12) ,
net_ip NVARCHAR(15) ,
prog_name NCHAR(128)
)
INSERT INTO #tb
( hostname ,
dbname ,
net_address ,
loginname ,
prog_name
)
SELECT DISTINCT
hostname ,
DB_NAME(dbid) ,
net_address ,
loginame ,
program_name
FROM master..sysprocesses
WHERE hostname <> ' '
AND ( @dbid IS NULL
OR dbid = @dbid
)
IF @includeip = 0
GOTO lb_show --如果不显示IP地址,就直接显示
DECLARE @sql VARCHAR(500) ,
@hostname NCHAR(128) ,
@id INT
CREATE TABLE #ip(hostname NCHAR(128), a VARCHAR(200))
DECLARE tb CURSOR LOCAL
FOR
SELECT DISTINCT hostname FROM #tb
OPEN tb
FETCH NEXT FROM tb INTO @hostname
WHILE @@fetch_status = 0
BEGIN
SET @sql = 'ping ' + @hostname + ' -a -n 1 -l 1'
INSERT #ip (a)
EXEC master..xp_cmdshell @sql
UPDATE #ip SET hostname = @hostname WHERE hostname IS NULL
FETCH NEXT FROM tb INTO @hostname
END
UPDATE #tb
SET net_ip = LEFT(a, PATINDEX('%:% ', a) - 1)
FROM #tb a
INNER JOIN ( SELECT hostname ,
a = SUBSTRING(a,
PATINDEX('Ping statistics for %:%',
a) + 20, 20)
FROM #ip
WHERE a LIKE 'Ping statistics for %:%'
) b ON a.hostname = b.hostname
lb_show:
SELECT id ,
数据库名 = dbname ,
客户机名 = hostname ,
用户名 = loginname ,
网卡物理地址 = net_address ,
IP地址 = net_ip ,
应用程序名称 = prog_name
FROM #tb
GO
- 获取客户端IP地址
- 获取IP地址!
- 获取IP地址
- 获取IP地址
- 获取对方ip地址
- 获取 IP 地址
- 获取客户端ip地址
- asp获取ip地址
- php获取ip 地址
- 获取IP地址
- 获取ip地址
- 获取IP地址
- PHP获取IP地址
- 获取ip地址函数
- 获取ip地址函数
- 获取IP地址
- Java获取IP地址
- 获取IP地址
- HDU Crixalis's Equipment
- Autorealse pool中的对象的release
- 团队管理
- android开发——环境搭建
- Android webview与js 交换JSON对象数据
- 获取IP地址
- SVN小结
- 沈阳移动打造“爱贝通”、“校讯通”业务助少年儿童健康成长
- 淘宝技术部电话面试
- 网络流模板( int型及double型 )
- unbutu(PSFTP)
- MongoDB Replica Set 配置 linux
- 备忘一下群里讨论的东西
- Linux 下ftp命令