Как узнать, установлен ли SQL Server в системе в сети, используя IP-адрес? - PullRequest
0 голосов
/ 29 декабря 2011

Как я могу проверить, установлен ли SQL Server в системе в сети?

Я должен найти его по IP-адресу.Возможно ли это?

Как этого добиться в коде c #?

Ответы [ 2 ]

1 голос
/ 29 декабря 2011

Вы можете попробовать использовать WMI.

Вот как определить, установлен ли SQL Server с использованием WMI: Часто задаваемые вопросы: Обнаружение SQL Server 2005 с использованием WMI (работает в 2005 году, его легко адаптировать для других версий).

Чтобы подключиться к удаленному компьютеру с помощью WMI, прочитайте this .

Конечно, WMI должен быть установлен, доступен и т. Д.

1 голос
/ 29 декабря 2011

Обычно 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 во многих других режимах, когда он недоступен через этот порт. Также возможно, чтобы этот порт был открыт (и реагировал) из других программ.

Это стоит иметь в видучто для обеспечения безопасности сервера, доступного через Интернет, рекомендуется использовать SQL Server на нестандартном порту, не иметь доступа к WMI и (в идеале) заблокировать сервер, чтобы он открывал свой порт только для адресов TCP / IP известного белого цвета.клиентов. Итак, в общем: нет способа сделать это сканирование, которое будет всегда работать. (Точно так же, если вы подумаете об этом ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...