Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Найти все активные SQL сервера 
:(
    Опции темы
Jonny
Дата 21.9.2005, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 3.8.2005

Репутация: нет
Всего: нет



Подскажите как найти все активные SQL сервера в сети. Т.е. по идеи мне нужно найти все компы с открытым портом 1433 или есть другой способ. Подскажите пожалуйсто, горю. За пример буду очень благодарен.
PM MAIL   Вверх
boevik
Дата 21.9.2005, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: нет
Всего: 35



Смотри в сторону SQL-DMO, Application object.

Искать по порту 1433 можно, но это ничего не даст.
Во первых, сервер может не использовать TCP/IP протокол.
Во вторых, можно изменить default порт на любой другой


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Jonny
Дата 21.9.2005, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 3.8.2005

Репутация: нет
Всего: нет



а подробнее можно или где почитать?
PM MAIL   Вверх
Петрович
Дата 21.9.2005, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 1
Всего: 55



Смотри сюда


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
boevik
Дата 21.9.2005, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: нет
Всего: 35



подробнее в msdn: Application object и метод ListAvailableSQLServers


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Jonny
Дата 21.9.2005, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 3.8.2005

Репутация: нет
Всего: нет



Спасибо Петрович! Выручил. Помню же где то встречал такое. Что значит давно на форуме не был smile
PM MAIL   Вверх
Jonny
Дата 21.9.2005, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 3.8.2005

Репутация: нет
Всего: нет



Цитата(boevik @ 21.9.2005, 07:42)
Смотри в сторону SQL-DMO, Application object.


Компонент это иль что? По сылке зайти не могу. Умники прикрыли фаерволом. Если компонент, то где еще можно скачать..Заранее благодарен за разъяснения.
PM MAIL   Вверх
boevik
Дата 21.9.2005, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: нет
Всего: 35



Да, это компонент, который устанавливается с клиентом или сервером.
Если у тебя установлен сервак или клиент, то в Book Online есть вся информация о работе с SQL-DMO и его установки.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Jonny
Дата 21.9.2005, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 3.8.2005

Репутация: нет
Всего: нет



Нашел прочел. Но не нашел про то как связать с Дельфи. Если есть конкретный пример, кинь глянуть. Может и пригодиться в дальнейшем.
PM MAIL   Вверх
boevik
Дата 21.9.2005, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: нет
Всего: 35



На Дельфи не пишу. Если в Дельги есть возможность работать с ActiveX/COM objects, то смотри примеры по VB. Идея одинакова в невисимости от языка реализации.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
SergeBS
Дата 22.9.2005, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: нет
Всего: 22



Jonny
Какой же ты нудный.. На:
Код


unit Unit1; 

interface 

uses 
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
  Winsock, StdCtrls, ScktComp; 

Const 
  CM_SocketCallBack = WM_App + 600; 

type 
  TClearSocketThread = class(TThread) 
  private 
    waitTime:Integer; 
    socket:Integer; 
  protected 
    procedure Execute; override; 
  public 
    constructor Create(s,w:Integer); 
  end; 

  TForm1 = class(TForm) 
    ListBox1: TListBox; 
    Button1: TButton; 
    procedure Button1Click(Sender: TObject); 
  private 
    Procedure CMSocketCallBack(Var Msg: TMessage); Message CM_SocketCallBack; 
  public 
    s:Integer; 
  end; 

var 
  Form1: TForm1; 

implementation 

{$R *.DFM} 

constructor TClearSocketThread.Create(s,w:Integer); 
begin 
  Socket:=s; 
  waitTime:=w; 
  FreeOnTerminate:=true; 
  inherited create(false); 
end; 

procedure TClearSocketThread.Execute; 
begin 
  sleep(waitTime); 
  closesocket(Socket); 
  WSACleanup; 
  windows.beep(4000,100); 
end; 

Procedure TForm1.CMSocketCallBack(Var Msg: TMessage); 
var 
  buffer:array [0..64000] of char; 
  str:String; 
  n:Integer; 
begin 
  fillchar(buffer,64000,0); 
  recv(s,buffer,sizeof(buffer),0); 
  str:=''; 
  for n:=3 to 64000 do begin 
    if buffer[n]=';' then begin 
      Listbox1.Items.Add(str); 
      str:=''; 
      continue; 
    end; 
    if buffer[n]=#0 then begin 
      Listbox1.Items.Add(str); 
      break; 
    end; 
    str:=str+buffer[n]; 
  end; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
const 
  Address='255.255.255.255'; 
var 
  wsa_data:WSADATA; 
  SNDBUF:Integer; 
  TCPNODELAY:Integer; 
  BROADCAST:integer; 
  hostaddr: sockaddr_in; 
  buf:char; 
begin 
  Listbox1.items.clear; 
  WSAStartup(2,wsa_data); 
  //create a socket 
  s:=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); 
  //declare call back routine 
  WSAAsyncSelect(s,self.Handle,CM_SocketCallBack,FD_READ); 
  //setup 
  SNDBUF:=0; 
  TCPNODELAY:=1; 
  BROADCAST:=1; 
  setsockopt(s,SOL_SOCKET,SO_SNDBUF,PChar(@SNDBUF),sizeof(SNDBUF)); 
  setsockopt(s,SOL_SOCKET,TCP_NODELAY,PChar(@TCPNODELAY),sizeof(TCPNODELAY)); 
  setsockopt(s,SOL_SOCKET,SO_BROADCAST,PChar(@BROADCAST),sizeof(BROADCAST)); 
  hostaddr.sin_family     :=AF_INET; 
  hostaddr.sin_port       :=htons(1434); 
  hostaddr.sin_addr.s_addr:=inet_addr(PChar(Address)); 
  buf:=#02; //ping 
  //ask all maschines 
  sendto(s,buf,1,0,hostaddr,sizeof(hostaddr)); 
  TClearSocketThread.Create(s,5000); 
end; 

end. 


Copyright © 2000 - 2004 delphi3000.com - All rights reserved.



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0753 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.