任何取得局域网中所有SqlServer服务器的名称(50分)

  • 主题发起人 主题发起人 好好人
  • 开始时间 开始时间

好好人

Unregistered / Unconfirmed
GUEST, unregistred user!
将局域网中所有SqlServer的服务器名称读入一列表中
 
如果用Ado连接是否Delphi中是否有现成的函数或控件属性
 
如果你知道SQL 服务器的打开的端口号,在扫描网内所有的打开这个端口的机器就可以了
 
不知道应该也可以的把,我用个一局域网工具,可以扫描局域网能所有的机器的共享目录
及扫描所有有装SqlServer的机器并列出其服务器名
 
编程扫描1433端口,这个是SQL SERVER的缺省端口。
 
to gonghh:
你能更具体的介绍下吗?
 
查查历史记录,肯定能找到答案!
 
我也很想知道
UP
 
呵呵,看看这个,不过得到的不是特别全。但是就算SQL Server自己也得不全呀。
扫描端口也许不好,如果更改了14433端口呢?我不知道下面得代码改变端口以后是否有效
还有一段VB的,没有实验的。如果需要,也可以贴出来。

来自:夜黑风高, 时间:2002-5-8 14:40:00, ID:1089201
uses
comobj;

procedure TForm1.btnButton1Click(Sender: TObject);
var
SQLServer: Variant;
ServerList: Variant;
i, nServers: integer;
sRetValue: String;
begin
SQLServer := CreateOleObject('SQLDMO.Application');
ServerList := SQLServer.ListAvailableSQLServers;
nServers := ServerList.Count;
for i := 1 to nservers do
ListBox1.Items.Add(ServerList.Item(i));
SQLServer := NULL;
serverList := NULL;
end;
 
同意yzhshi大侠的说法。当端口改变,扫描确实搞不定。
不过一般的改端口的不多,是不是呀?:)

yzhshi大侠帖出来代码,得出SQL SERVER在客户管理器中已注册的服务器名。
没注册的就不行了。

 
不是 已经注册的。
我的管理器里面注册了两个,本机和另外一个域控制器上面的。
但是我执行上面的代码得到了本机和另外一个98上面安装的服务器,那个域控制器上面的没得到。
我也就说不准他到底是得到什么的了,不过你在SQL Server自己的管理器里面也会看到他自己都搜索不全……
 
接受答案了.
 
后退
顶部