⑴ 有一個表,存用戶的登錄時間和IP,寫sql語句取某一天每小時的登錄人數。如(0-1,1-2,....23-24)
----------不考慮IP重復的問題------------------
select DATEPART ( hour,<時間>) ,count(*) from <表>as s group by DATEPART ( hour,<時間>) ;
--------考慮IP重復問題-----------
select hournum,count(*) from (select DATEPART ( hour,<時間>) as hournum,<IP> from <表>) group by hournum
如果還要考慮某一天,那就加上where子句限定日期
⑵ 使用SQL語句獲得伺服器名稱和IP 地址
使用SQL語句獲得伺服器名稱和IP地址獲取伺服器名稱:SELECT SERVERPROPERTY('MachineName')select @@SERVERNAMEselect HOST_NAME()獲取IP地址
⑶ 如何用sql命令獲取ip地址
在一些需求中,可能我們需要知道連接到SqlServer的前端程序的一些系統信息,比如前端連接的計算機名稱,IP地址,什麼時候開始請求連接,什麼時候結束連接等信息。如果你對SqlServer的系統函數或視圖不太了解,這個功能看起來好像比較復雜,而實際上, SqlServer的動態管理視圖已經給我們提供了這些信息,下面我們來看兩個動態管理視圖。1、Sys.dm_exec_Sessions 這個視圖中提供了所有連接sqlserver的客戶端的一些信息,下面是Sys.dm_exec_Sessions返回的列:列名數據類型 說明Session_idsmallint標識與每個活動主連接關聯的會話。login_timedatetime建立會話的時間。host_namenvarchar(128)與會話關聯的主機。program_namenvarchar(128)與會話關聯的程序。host_process_idint與會話關聯的進程 ID。client_versionint客戶端連接到伺服器所用的介面版本。client_interface_namenvarchar(32)客戶端連接到伺服器所用的介面名稱。security_idvarbinary(85)與登錄名關聯的 Microsoft Windows 安全 ID。login_namenvarchar(128)與會話關聯的 SQL 登錄名。nt_domainnvarchar(128)從中建立會話連接的域。nt_user_namenvarchar(128)與會話關聯的用戶名。statusnvarchar(30)會話的狀態。可能的值: 1,運行 - 當前正在運行一個或多個請求
2,睡眠 - 當前沒有運行任何請求
3,休眠 - 會話處於登錄前狀態
context_infovarbinary(128)會話的 CONTEXT_INFO 值。cpu_timeint該會話所佔用的 CPU 時間(毫秒)。memory_usageint該會話所佔用的 8 KB 內存頁數。total_scheled_timeint計劃內含請求的會話的執行所耗用的總計時間(毫秒)。total_elapsed_timeint自會話建立以來已耗用的時間(毫秒)。endpoint_idint與會話關聯的端點的 ID。last_request_start_timedatetime最近一次會話請求的開始時間。這包括當前正在執行的請求。last_request_end_timedatetime最近一次會話請求的完成時間。readsbigint在該會話期間該會話中的請求所執行的讀取次數。Writesbigint在該會話期間該會話中的請求所執行的寫入次數。logical_readsbigint已對該會話執行的邏輯讀取數。is_user_processbit如果會話是系統會話,則為 0。否則,為 1。text_sizeint會話的 TEXTSIZE 設置。languagenvarchar(128)會話的 LANGUAGE 設置。date_formatnvarchar(3)會話的 DATEFORMAT 設置。date_firstsmallint會話的 DATEFIRST 設置。quoted_identifierbit會話的 QUOTED_IDENTIFIER 設置。arithabortbit會話的 ARITHABORT 設置。ansi_null_dflt_onbit會話的 ANSI_NULL_DFLT_ON 設置。ansi_defaultsbit會話的 ANSI_DEFAULTS 設置。ansi_warningsbit會話的 ANSI_WARNINGS 設置。ansi_paddingbit會話的 ANSI_PADDING 設置。ansi_nullsbit會話的 ANSI_NULLS 設置。concat_null_yields_nullbit會話的 CONCAT_NULL_YIELDS_NULL 設置。transaction_isolation_levelsmallint會話的事務隔離級別。 0 = 未指定 1 = 未提交讀取 2 = 已提交讀取 3 = 可重復 4 = 可序列化 5 = 快照lock_timeoutint會話的 LOCK_TIMEOUT 設置。該值以毫秒計。deadlock_priorityint會話的 DEADLOCK_PRIORITY 設置。row_countbigint到目前為止會話返回的行數。prev_errorint會話返回的最近一個錯誤的 ID。比如說,我們要看那些主機有連接到了sqlserver伺服器,可以使用下面的sql語句:
select distinct host_name from sys.dm_exec_Sessions要看那些用戶已連接到sqlserver伺服器:
select distinct login_name from sys.dm_exec_Sessions當然,利用上面的列,我們可以獲得更多想要的客戶端信息2、Sys.dm_exec_connections 這個視圖返回了連接sqlserver伺服器上面的每個連接的詳細信息,下面是Sys.dm_exec_connections返回的列:列名數據類型 說明Session_idint標識與此連接關聯的會話。most_recent_Session_idint顯示與此連接關聯的最近請求的會話 ID。connect_timedatetime連接建立時的時間戳。net_transportnvarchar(40)說明該連接使用的物理傳輸協議。protocol_typenvarchar(40)指定負載的協議類型。此參數當前可區分 TDS (TSQL) 和 SOAP。protocol_versionint與此連接關聯的數據訪問協議的版本。endpoint_idint與此連接關聯的端點的唯一標識符。此 endpoint_id 可用於查詢 sys.endpoints 視圖。encrypt_optionnvarchar(40)說明是否為此連接啟用了加密的布爾值。auth_schemenvarchar(40)指定與此連接一起使用的 SQL Server/NT 身份驗證。node_affinitysmallint顯示與此連接關聯的 SOS 節點。num_readsint此連接中已發生的讀包次數。num_writesint此連接中已發生的寫數據包次數。last_readdatetime此連接中上一次發生讀操作的時間戳。last_writedatetime此連接中上一次發生寫操作的時間戳。net_packet_sizeint用於信息和數據的網路包的大小。client_net_addressvarchar(40)與此伺服器連接的客戶端的主機地址。client_tcp_portint與該連接關聯的客戶機上的埠號。local_net_addressvarchar(40)顯示此連接的目標伺服器的 IP 地址。只對使用 TCP 傳輸提供程序的連接可用。local_tcp_portint如果此連接使用 TCP 傳輸,則顯示該連接的目標伺服器的 TCP 埠。connection_iniqueidentifier對每個連接進行唯一標識。parent_connection_iniqueidentifier標識MARS 會話正在使用的主要連接。most_recent_sql_handlevarbinary(64)此連接上執行的上一個請求的 SQL 句柄。most_recent_sql_handle 列始終與 most_recent_Session_id 列同步。比如,我要查看當前連接的客戶端IP與sqlserver所在伺服器的IP,可以用下面的sql查詢:
select client_net_address '客戶端IP',local_net_address '伺服器的IP' from sys.dm_exec_connections where Session_id=@@spid@@spid的作用是返回當前進程的會話ID。
⑷ 如何獲取IP地址 - SQL Server -
要獲取資料庫伺服器IP,可通過xp_cmdshell 來獲取信息,然後對信息進行篩選
xp_cmdshell 擴展存儲過程將命令字元串作為操作系統命令 shell 執行,並以文本行的形式返回所有輸出。由於存在安全隱患,所以在SQL Server 中, xp_cmdshell 默認是關閉的。
實現代碼如下:
--開啟xp_cmdshell
exec sp_configure 'show advanced options', 1
reconfigure with override
exec sp_configure 'xp_cmdshell', 1
reconfigure with override
exec sp_configure 'show advanced options', 0
reconfigure with override
go
begin
declare @ipline varchar(200)
declare @pos int
declare @ip varchar(40)
set nocount on
set @ip = null
if object_id('tempdb..#temp') is not null drop table #temp
create table #temp (ipline varchar(200))
insert #temp exec master..xp_cmdshell 'ipconfig'
select @ipline = ipline
from #temp
where upper (ipline) like '%IPv4 地址%'--這里需要注意一下,系統不同這里的匹配值就不同
if @ipline is not null
begin
set @pos = charindex (':',@ipline,1);
set @ip = rtrim(ltrim(substring (@ipline ,
@pos + 1 ,
len (@ipline) - @pos)))
end
select distinct(rtrim(ltrim(substring (@ipline ,
@pos + 1 ,
len (@ipline) - @pos)))) as ipaddress from #temp
drop table #temp
set nocount off
end
go
⑸ 如何在SQL Server內獲取客戶端的IP地址
所有連接本機的:操作的資料庫名,計算機名,用戶名,網卡物理地址,IP地址,程序名 --鄒建2003.11(引用請保留此信息)--*//*--調用示例--顯示所有本機的連接信息 exec p_getlinkinfo --顯示所有本機的連接信息,包含ip地址 exec p_getlinkinfo @includeip=1 --顯示連接指定資料庫的信息 exec p_getlinkinfo '客戶資料'--*/createprocp_getlinkinfo@dbnamesysname=null,--要查詢的資料庫名,默認查詢所有資料庫的連接信息@includeipbit=0--是否顯示IP地址,因為查詢IP地址比較費時,所以增加此控制asdeclare@dbidintset@dbid=db_id(@dbname)createtable#tb(idintidentity(1,1 ),dbname sysname,hostnamenchar(128 ),loginnamenchar(128 ),net_addressnchar(12 ),net_ipnvarchar(15 ),prog_namenchar(128))insertinto#tb(hostname,dbname,net_address,loginname,prog_name)selectdistincthostname, db_name(dbid),net_address,loginame,program_namefrommaster..sysprocesseswherehostname<''and(@dbidisnullordbid=@dbid)if@includeip=0gotolb_show--如果不顯示IP地址,就直接顯示declare@sqlvarchar(500), @hostnamenchar(128), @idintcreatetable#ip(hostnamenchar(128 ),a varchar(200))#tbopentbfetchnextfromtbinto@hostnamewhile@@fetch_status=0beginset@sql='ping'+@hostname+'-a -n 1 -l 1'insert#ip(a)execmaster..xp_cmdshell@sqlupdate#ipsethostname=@@hostnameenpdate#tbsetnet_ip=left(a, patindex('%:%' ,a)-1)from#tb ainnerjoin(selecthostname,a=substring(a, patindex('Ping statistics for %:%' ,a)+20,20)from#ipwherealike'Ping statistics for %:%') bon a.hostname= b.hostnamelb_show:selectid,資料庫名=dbname,客戶機名=hostname,用戶名=loginname ,網卡物理地址=net_address,IP地址=net_ip,應用程序名稱=prog_namefrom#tbgo --------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------(有用的查詢)
⑹ SQL SERVER怎麼用外網IP登陸
如果沒有物理連接,無法登陸得上。
如果內外網是通過路由、防火牆連接的,需要在路由、防火牆設置一條通道。
⑺ sql怎麼獲取每個用戶,最新的一次登陸數據
select 用戶id,max(時間) from tablename group by 用戶id。
這樣就能獲取每個用戶最新一次登錄的數據
⑻ 怎樣獲得sql資料庫伺服器IP地址
你安裝培訓平台時,程序需要資料庫來保存平台的數據,這時要求你電腦上有資料庫,這個伺服器ip就是裝有sql server 伺服器的電腦ip了。
⑼ SQL 8.0 中如何查詢OA個人用戶登錄IP地址
這個需要具備一點SQL專業知識才可以操作,不過也不建議,畢竟容易導致系統崩潰。一般的oa系統都有後台的,後台也可以支持查詢的。
哨子辦公,移動辦公管理專家。
⑽ JSP+SQL資料庫怎麼實現獲取上次登錄時間和IP呢 求具體代碼 !!!
存到資料庫。下次讀取就行了。
要有一個登錄日誌表。