<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>&nbsp;</div>
<div>Un'altra domanda molto semplice per intasare la ml :)</div>
<div>&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s.settimeout(5);</div>
<div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; code = s.connect((ip,port))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; except socket.timeout:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;timeout!&quot;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (code == None):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s.shutdown(socket.SHUT_RDWR)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s.close()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print ip,&quot;Port&quot;,port,&quot;open&quot;<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>&nbsp; File &quot;test.py&quot;, line 31, in ?<br>&nbsp;&nbsp;&nbsp; code = s.connect((ip,port))<br>&nbsp; File &quot;&lt;string&gt;&quot;, 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> &lt;<a href="mailto:nico@teknico.net">nico@teknico.net</a>&gt; ha scritto:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">&gt;&gt; Se però il server non è raggiungibile ottengo in output un messaggio<br>&gt;&gt; del genere:<br>&gt;&gt;
<br>&gt;&gt; _mssql.error: DB-Lib error message 20009, severity 9:<br>&gt;&gt; Server is unavailable or does not exist.<br>&gt;&gt;<br>&gt;&gt; Come potrei gestire questo errore in maniera &quot;elegante&quot;?<br><br>&gt; Non conosco il modulo in questione ma ti potrei consigliare
<br>&gt;<br>&gt; import _mssql<br>&gt;<br>&gt; try:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; mssql=_mssql.connect('<a href="http://127.0.0.1">127.0.0.1</a> &lt;<a href="http://127.0.0.1">http://127.0.0.1</a>&gt;','sa','')<br>&gt; except:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; 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>&nbsp;&nbsp; mssql = _mssql.connect('<a href="http://127.0.0.1">127.0.0.1</a> &lt;
<a href="http://127.0.0.1">http://127.0.0.1</a>&gt;','sa','')<br>except Exception, err:<br>&nbsp;&nbsp; print err<br><br>Meglio ancora specificare l'eccezione:<br><br>try:<br>&nbsp;&nbsp; mssql = _mssql.connect('<a href="http://127.0.0.1">127.0.0.1
</a> &lt;<a href="http://127.0.0.1">http://127.0.0.1</a>&gt;','sa','')<br>except _mssql.error, err:<br>&nbsp;&nbsp; print err<br><br>così altre eccezioni non gestite daranno un traceback completo.<br><br><br>Infine, non uso SQL Server ma quel &quot;_mssql&quot; mi puzza di variabile interna.
<br>Non c'è qualcosa di più ufficiale da usare?<br></blockquote></div><br>