當前位置:首頁 » 編程語言 » sql地址提取
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql地址提取

發布時間: 2022-09-23 06:44:16

1. 如何在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 --------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------(有用的查詢)

2. sql 怎麼從地址字元串中提取省份和地市

....
你這種想直接提取估計不現實,除非有特定的規則,,,
一般提取都是用表關聯來實現的
1 你要維護一個省份表
2 你要維護一個地市表
這樣,你就算地址裡面沒有特定規則,也可以根據省份,
地市表中的維護數據取出省份,地市了

3. 使用SQL語句獲得伺服器名稱和IP 地址

使用SQL語句獲得伺服器名稱和IP地址獲取伺服器名稱:SELECT SERVERPROPERTY('MachineName')select @@SERVERNAMEselect HOST_NAME()獲取IP地址

4. 在sql中有一個欄位,比如我要截取一個地址要求截取到區,有的是沙坪壩區,有的是九華區,怎麼寫啊

--這個簡單,charindex和substring,len就可以實現,具體要看看你的欄位結構就能寫出來
--假如表名為#tem欄位名為courtname,如下圖
select*from#tem
selectleft(CourtName,CHARINDEX('區',CourtName))from#tem
--如果是截取到區之前就在charindex()後減1
selectleft(CourtName,CHARINDEX('區',CourtName)-1)from#tem

--那就是第二個,不包含'區'的語句

5. 如何在SqlServer中獲取前端連接的IP地址,計算機名等信息

select client_net_address '客戶端IP',local_net_address '伺服器的IP' from sys.dm_exec_connections where Session_id=@@spid
@@spid的作用是返回當前進程的會話ID。

6. 如何用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。

7. 如何從SQL資料庫文件中,提取郵箱地址,並存入文本文件格式

資料庫文件需要資料庫引擎驅動的,若你使用的是Access資料庫mdb格式的,首相要使用一種程序語言連接,通過代碼來獲取資料庫然後持久化文件。

8. SQL語句中如何提取ip地址的前兩段,如'192.168.0.1',提取'192.168'

可通過LEFT函數實現。如下實例:

如某資料庫中表Table1的IP列,儲存了IP地址的信息。因IP地址前兩段(共7位)固定不變,可直接用select left(ip,7) from table1 where 1 = 1 ...

筆者亦通過定義臨時變數取值的方法,演示如下圖:

9. sql怎麼在地址內提取長河路

方法如下:
1,一般提取都是用表關聯來實現的,你要維護一個省份表。
2,你要維護一個地市表,這樣,你就算地址裡面沒有特定規則,也可以根據省份,地市表中的維護數據取出省份,地市了。