[firebase-br] Como descobrir se uma porta TCP está livre para o FireBird

Paulo - yahoo psdias2 em yahoo.com.br
Qua Nov 12 18:17:51 -03 2008


Peço licença para enviar esta pergunta - talvez off-topic, mas que tem 
relação
com a instalação do FireBird.

Gostaria de saber se alguém já fez algo semelhante (ou se tem idéia
de como fazer):


A) Se for possível, no Inno Setup:
================================

- Gostaria de solicitar ao usuário em qual porta TCP ele deseja
instalar o FireBird

- Depois que o usuário informar a porta, eu testaria se ela está livre;  se 
não estiver, avisaria
o usuário e ele teria de selecionar uma outra porta

Observação:  Na seção [RUN] do meu script do Inno Setup, estou chamando a 
instalação de uma instância
do FireBird assim (com a porta 3054 pré-determinada):

[Run]

Filename: {app}\Firebird\bin\install_classic.bat; Parameters: MEU_SERVER; 
Components : serverFiles

Filename: {sys}\netsh.exe; Parameters: "firewall add portopening 
protocol=TCP port=3054 name=""Firebird MEU_SERVER"" mode=ENABLE 
scope=SUBNET"; Flags: nowait runhidden; MinVersion: 0,5.01.2600; Components 
: serverFiles


- Também gostaria de pegar automaticamente  o nome de rede do computador 
onde está sendo feita a instalação, e então
alterar (durante a instalação) um arquivo BD.INI, onde eu guardaria o nome 
do servidor e a porta TCP escolhida



B) Se não for possível no Inno Setup
================================

- Neste caso, pretendo escrever um programinha Delphi de configuração, que 
seria chamado no final da instalação;
esse meu programinha pediria e testaria a porta;  se eu tiver que optar por 
esta alternativa, então
meu programinha alteraria o um arquivo BD.INI (isto eu sei fazer).

- Para eu poder implementar a idéia da alternativa "B", como é que eu testo 
se uma determinada porta TCP está livre ?


Grato pela atenção de todos
Paulo










Mais detalhes sobre a lista de discussão lista