[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