sys.dm_exec_connections DMVを使用してIPアドレスを取得する
SQL ServerのIPアドレスを取得するクエリ
手順
- SQL Server Management Studio (SSMS) を起動し、SQL Serverインスタンスに接続します。
- 以下のクエリを実行します。
SELECT
client_net_address AS 'IPアドレス',
local_net_address AS 'ローカルIPアドレス',
client_tcp_port AS 'クライアントポート',
local_tcp_port AS 'ローカルポート'
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;
結果
このクエリを実行すると、以下の列が表示されます。
- IPアドレス: クライアントのIPアドレス
- ローカルIPアドレス: サーバーのローカルIPアドレス
- クライアントポート: クライアントのTCPポート番号
- ローカルポート: サーバーのローカルTCPポート番号
解説
- sys.dm_exec_connections DMVは、現在接続されているすべてのセッションに関する情報を提供します。
- session_id は、現在のセッションのIDです。@@SPIDシステム関数は、現在のセッションのIDを取得するために使用されます。
- client_net_address 列には、クライアントのIPアドレスが表示されます。
- HOST_NAME() 関数: この関数は、サーバーのホスト名を取得します。ホスト名をDNSサーバーでIPアドレスに解決することで、サーバーのIPアドレスを取得できます。
- ipconfig コマンド: このコマンドは、コマンドプロンプトから実行できます。このコマンドを実行すると、ネットワークインターフェースに関する情報が表示されます。この情報には、サーバーのIPアドレスも含まれます。
-- 現在のセッションのIPアドレスを取得する
SELECT
client_net_address AS 'IPアドレス',
local_net_address AS 'ローカルIPアドレス',
client_tcp_port AS 'クライアントポート',
local_tcp_port AS 'ローカルポート'
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;
-- サーバーのホスト名を取得する
SELECT HOST_NAME();
-- @@SERVERNAME システム変数を使用してサーバーのホスト名を取得する
SELECT @@SERVERNAME;
- 新しいクエリウィンドウを開き、上記のサンプルコードを貼り付けます。
- 実行 ボタンをクリックします。
- 最初のクエリを実行すると、現在のセッションのIPアドレス、ローカルIPアドレス、クライアントポート、ローカルポートが表示されます。
SQL ServerのIPアドレスを取得するその他の方法
SELECT HOST_NAME();
- HOST_NAME()関数は、サーバーのホスト名を取得します。
- ホスト名をDNSサーバーでIPアドレスに解決することで、サーバーのIPアドレスを取得できます。
@@SERVERNAMEシステム変数
SELECT @@SERVERNAME;
ipconfigコマンド
ipconfig
- ipconfigコマンドは、コマンドプロンプトから実行できます。
- このコマンドを実行すると、ネットワークインターフェースに関する情報が表示されます。
- この情報には、サーバーのIPアドレスも含まれます。
WMI
wmic baseboard get product,Manufacturer,version,serialnumber
- WMI (Windows Management Instrumentation) は、Windowsオペレーティングシステムの管理情報を取得するためのAPIです。
- 上記のWMIクエリは、マザーボードに関する情報を取得します。
PowerShell
Get-NetAdapter | Select-Object -Property Name, IPAddress
- PowerShellは、Windowsオペレーティングシステムの管理を自動化するためのスクリプト言語です。
- 上記のPowerShellコマンドは、ネットワークアダプタに関する情報を取得します。
注意事項
- HOST_NAME()関数と@@SERVERNAMEシステム変数は、サーバーのホスト名を取得します。ホスト名をIPアドレスに変換するには、DNSサーバーが必要です。
- ipconfigコマンド、WMI、PowerShellは、コマンドプロンプトまたはPowerShellスクリプトから実行する必要があります。
- 最も簡単な方法は、sys.dm_exec_connections DMVを使用することです。
- ホスト名のみを取得する場合は、HOST_NAME()関数または@@SERVERNAMEシステム変数を使用できます。
- コマンドプロンプトまたはPowerShellスクリプトを使用する場合は、ipconfigコマンド、WMI、PowerShellを使用できます。
sql sql-server