Newsgroup: it.comp.lang.visual-basic
Titolo: FAre DNS lookup da un server DNS?

Ciao a tutti.
Avrei la necessita' di implementare un DNS lookup tramite Visual Basic,
quindi sto cercando un OCX o componente, freeware (preferibilmente) o
shareware.
Ho trovato qualche controllo freeware, ma tutti quelli che ho trovato
effettuano la query sul DNS predefinito mentre io dovrei poter scegliere il
server DNS presso il quale fare l'operazione.
Cosa potete consigliarmi?
--
   Alex Palmese
---
Sei anche tu stanco dei messaggi spam? Usa Terminator, il programma
anti-spam italiano FREEWARE! 
http://www.sertel.net/terminator/

 Cosa potete consigliarmi?
Utility nslookup, inclusa in tutte le distribuzioni del server BIND, e 
in Windows NT. Mi sembra di ricordare che ormai è considerata obsoleta 
e si preferisce un'altra utility, sempre inclusa in BIND, ma ora non 
ricordo niente di preciso. BIND 8 per Windows lo trovi qui:
http://bind8nt.meiway.com/
-- 
 < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
     Don't stand, REACT!      version 0.0.18. C, C++ and ASM developers
                              and beta testers are welcome!

 ha scritto nel messaggio
news:a4u97t$37cj9$1...@ID-61896.news.dfncis.de...


 Utility nslookup, inclusa in tutte le distribuzioni del server BIND
Ti ringrazio ma non cerco un'utility, bensi' un componente da poter
utilizzare in un programma Visual Basic.


 tutto oro. Se non trovi di meglio...
Beh dipende da cosa intendi....;-) Il controllo lo rilasci free o shareware
o cosa?
Dato che vorrei utilizzarlo per un programma freeware io cerco un controllo
freeware, ma se proprio dovesse essere shareware dovrebbe costare proprio
poco...;-)


 utilizzare in un programma Visual Basic.
Che problema c'č? Non capisco



non so cosa risponderti.
Bye, Clod.

 Che problema c'č? Non capisco
Ok, proviamo rovesciando la domanda: in quale modo tu utilizzaresti questa
utility nslookup dall'interno di un programma Visual Basic per poter sapere
se un determinato server (o IP) esiste all'interno del DNS verso il quale
voglio fare il lookup, ed in base alla risposta far fare al programma una
cosa piuttosto che un'altra?
L'nslookup che conosco e' un'applicazione command, quindi cosa dovrei fare,
una shell? E se si, in quale modo secondo te dovrei leggere la risposta?
Chiaro che potrei lanciare la shell facendo un redirect della risposta verso
un file ("nslookup nomeserver > file.txt"), poi attendere la chiusura del
task e leggere questo file, ma non e' una soluzione accettabile in quanto il
tempo di esecuzione sarebbe elevato (forse anche dell'ordine di 1-2 secondi,
tralasciando il tempo dell'interrogazione via rete).
Intendevi qualcosa di differente, oppure c'e' qualche altra idea?


 dovrei fare, una shell?
CreateProcess() è meglio. Crei un file temporaneo con CreateFile(), 
passi l'handle (ricordati di specificare che lo vuoi ereditabile) a 
questo file come stdout del processo, crei un secondo file da usare 
come stderr, e con questi parametri avvii nslookup. Poi fai un loop di 
GetExitCodeProcess() e DoEvents, aspettando che nslookup termini e 
mostrando all'utente in qualche modo che il programma non è bloccato, 
magari con un'animazione o cambiando il cursore in clessidra. Ricordati 
un tasto Annulla che impietosamente eseguirà un TerminateProcess() su 
nslookup, casomai si bloccasse
Se nslookup esce con codice zero, ha avuto successo, e leggi il file 
che gli hai passato come stdout. Altrimenti segnali all'utente che 
l'operazione è fallita e mostri nel messaggio il testo in stderr
Tutto questo segnatelo, casomai ti servisse in futuro :-P Chè molti 
problemi si risolvono ad una velocità incredibile usando programmi già 
fatti
(il fatto è che il formato di output di nslookup non è un granchè. 
Vorrei tanto ricordarmi che altra utility l'ha soppiantato)


 soppiantato)
Dig o host.
Ciao.
--
BSD is for UNIX-lovers -- linux is for Windows-haters.

 Dig o host.
Danke!


 CreateProcess() č meglio. Crei un file temporaneo con CreateFile(),
Grazie per la spiegazione dettagliata (che ho comunque salvato;-)), ma non
e' proprio cio' che stavo cercando.
Ho la necessita' di fare alcune interrogazioni al secondo, e vorrei evitare
di creare processi, file temporanei eccetera: cio' che cerco e' un qualche
OCX che sia in grado di verificare se il sito X e' presente sul DNS server
Y. Per fare questo teoricamente basta accedere al DNS server effettuando una
interrogazione secondo protocollo (ho trovato RFC2136, RFC2929) ma dato che
tale protocollo e' abbastanza complesso oltre che binario (non e' come POP3
ed SMTP per intenderci;-)) vorrei evitarmi di dover studiare il protocollo
ed implementarlo con il Winsock come ho gia' fatto per POP3, SMTP e tanti
altri protocolli...
Esiste un OCX per fare questo? Non ho bisogno neanche di accedere a tutti i
parametri e opzioni della query DNS, devo solo sapere se un sito o indirizzo
IP e' presente in un server DNS, quindi vorrei la soluzione piu' semplice
possibile!
