2011-12-29 52 views

回答

1

一般的SQL Server偵聽端口1433:

http://support.microsoft.com/kb/287932

因此,如果您發現該端口是開放的有一個很好的機會(但不是一定)是SQL Server安裝在該計算機上和是可訪問的。

您可以檢查該端口是打開插座給它開:看到Socket類(DOC:http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx)瞭解詳情。

然而,它也可以在許多其他的模式。其中,它不是通過這個端口訪問安裝SQL Server。此端口也可以從其他程序打開(並響應)。

值得注意的是,保護可通過Internet訪問的服務器的最佳實踐將使SQL Server處於非標準端口,無法訪問WMI,並且(理想情況下)鎖定服務器以僅打開其端口到已知白名單客戶端的TCP/IP地址。所以一般情況下:沒有辦法做這個掃描,將總是工作。 (一樣好,如果你仔細想想...)

+0

這個端口可能永遠不會被使用:我知道在哪裏使用命名實例的永不使用1433的商店。另外,1434可能被阻塞到端口必須事先知道。或者SQL Server可能會停止。您通常需要閱讀註冊表或使用WMI找出 – gbn 2011-12-29 12:20:31

+0

的確。答案已更新。 – 2011-12-29 12:24:41

+0

有很好的理由說明,爲什麼我們不應該在端口1433上將SQL Server暴露給外部世界 - 所以它經常被移動。 – Murph 2011-12-29 12:27:44

1

你可以嘗試使用WMI。

下面是如何如果使用WMI安裝了SQL Server檢測:FAQ: Detecting SQL Server 2005 using WMI(適用於2005年,應該很容易對其他版本的適應)。

要連接到使用WMI遠程計算機,讀取this

當然必須安裝WMI,四通八達,等

相關問題