<div>Ok, ottima idea.</div>
<div>Per quanto rigaurda il modulo, è il primo e l'unico che ho trovato.</div>
<div>Ma essendo nuovissimo di python... potrei aver cercato nei posti sbagliati.</div>
<div> </div>
<div>Un'altra domanda molto semplice per intasare la ml :)</div>
<div> </div>
<div>Vorrei fare un semplice script che mi controlla che la porta di mssql sia</div>
<div>effettivamente aperta su 5 host prima di collegarmi. Un semplice port scanner.</div>
<div>Scusate la formattazione che con il webmail di google potrebbe scazzare...</div>
<div><br> s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)<br> s.settimeout(5);</div>
<div>
<p> try:<br> code = s.connect((ip,port))<br> except socket.timeout:<br> print "timeout!"</p>
<p> if (code == None):<br> s.shutdown(socket.SHUT_RDWR)</p>
<p> s.close()<br> print ip,"Port",port,"open"<br></p>
<p>Per il momento non funziona. Al primo ip con la porta chiusa, lo script esce con</p>
<p>Traceback (most recent call last):<br> File "test.py", line 31, in ?<br> code = s.connect((ip,port))<br> File "<string>", line 1, in connect<br>socket.timeout: timed out<br><br>Grazie ancora
<br></p></div>
<div><span class="gmail_quote">Il 27/07/06, <b class="gmail_sendername">Nicola Larosa</b> <<a href="mailto:nico@teknico.net">nico@teknico.net</a>> ha scritto:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">>> Se però il server non è raggiungibile ottengo in output un messaggio<br>>> del genere:<br>>>
<br>>> _mssql.error: DB-Lib error message 20009, severity 9:<br>>> Server is unavailable or does not exist.<br>>><br>>> Come potrei gestire questo errore in maniera "elegante"?<br><br>> Non conosco il modulo in questione ma ti potrei consigliare
<br>><br>> import _mssql<br>><br>> try:<br>> mssql=_mssql.connect('<a href="http://127.0.0.1">127.0.0.1</a> <<a href="http://127.0.0.1">http://127.0.0.1</a>>','sa','')<br>> except:<br>> mssql=None
<br><br>Per favore, no.<br><br>Non silenziate gli errori con una except vuota: non saprete più cos'è successo.<br><br>Come minimo fate:<br><br>try:<br> mssql = _mssql.connect('<a href="http://127.0.0.1">127.0.0.1</a> <
<a href="http://127.0.0.1">http://127.0.0.1</a>>','sa','')<br>except Exception, err:<br> print err<br><br>Meglio ancora specificare l'eccezione:<br><br>try:<br> mssql = _mssql.connect('<a href="http://127.0.0.1">127.0.0.1
</a> <<a href="http://127.0.0.1">http://127.0.0.1</a>>','sa','')<br>except _mssql.error, err:<br> print err<br><br>così altre eccezioni non gestite daranno un traceback completo.<br><br><br>Infine, non uso SQL Server ma quel "_mssql" mi puzza di variabile interna.
<br>Non c'è qualcosa di più ufficiale da usare?<br></blockquote></div><br>