2009-06-09 20 views
1

t-sqlでホスト名を解決するにはどうすればよいですか? 2000互換の方法が好ましい。しかし、2005/2008には役立つものもあります。t-sqlでホスト名を解決する

例えば、もし私がホスト名を持っていれば、私は戻りたいと思っています。69.59.196.211

+0

これは、データベースが実行する適切な機能であるかどうかはわかりません。また、単一のホスト名が複数のIPアドレスに解決される可能性がありますか? –

+0

ええ、私はラウンドロビンのようなものがあることを知っています異なるIPを与えるだろうが、私は環境の中でそれを処理する必要はありません。 –

+0

時々、あなたが持っているすべてがハンマーです.. – ahains

答えて

6

まあ、あなたはxp_cmdshellを使ってnslookupを実行し、結果を解析できると思います。しかし、SQL Serverがやっているのは本当に面倒なことだと思う。

exec master..xp_cmdshell 'nslookup intel.com' 

..それで、あなたはたぶんテンポラリテーブルにそれを詰め込み、結果を歩きたいと思うでしょう。

また、SQL Server 2005または2008にアクセスできる場合は、.NETでストアドプロシージャまたは関数を作成し、Dns.GetHostAddresses()という簡単な呼び出しを行うこともできます。

+1

完全にテストされていない、: 手順xp_Nslookup @ipのVARCHAR(17) として宣言@cmd varchar型(255) /* = '192.168.100.1' @ip設定*を/ CREATE を設定する@cmd = 'For/F "skip = 2 tokens = 1,2"%i in(' 'c:\ winnt \ system32 \ nslookup.exe' + @ IP + '' ')@echo' + @ IPNslookup exec master ... xp_cmdshell @cmdに挿入します。 Nslookupがデータがnullの場合、削除します。 GO(%) –

0

SQL Serverは、セキュリティ構成の一部としてプロシージャ 'sys.xp_cmdshell'へのアクセスをブロックすることがあります。システム管理者は、次のように 'xp_cmdshell'の使用を有効にすることができます。

-- Allow advanced options. 
EXEC sp_configure 'show advanced options', 1; 
GO 
-- Update the currently configured value for advanced options. 
RECONFIGURE; 
GO 
-- Then, enable the feature. 
EXEC sp_configure 'xp_cmdshell', 1; 
GO 
-- Update the currently configured value for this feature. 
RECONFIGURE; 
GO 
-- Then you can go ahead and run ... 
exec master..xp_cmdshell 'nslookup microsoft.com' 
GO 
関連する問題