[Python] Re: mssql

sergio brio brio.sergio a gmail.com
Gio 27 Lug 2006 18:01:30 CEST


Ok, ottima idea.
Per quanto rigaurda il modulo, è il primo e l'unico che ho trovato.
Ma essendo nuovissimo di python... potrei aver cercato nei posti sbagliati.

Un'altra domanda molto semplice per intasare la ml :)

Vorrei fare un semplice script che mi controlla che la porta di mssql sia
effettivamente aperta su 5 host prima di collegarmi. Un semplice port
scanner.
Scusate la formattazione che con il webmail di google potrebbe scazzare...

                s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
                s.settimeout(5);

                try:
                        code = s.connect((ip,port))
                except socket.timeout:
                        print "timeout!"

                if (code == None):
                        s.shutdown(socket.SHUT_RDWR)

                        s.close()
                        print ip,"Port",port,"open"

Per il momento non funziona. Al primo ip con la porta chiusa, lo script esce
con

Traceback (most recent call last):
  File "test.py", line 31, in ?
    code = s.connect((ip,port))
  File "<string>", line 1, in connect
socket.timeout: timed out

Grazie ancora
Il 27/07/06, Nicola Larosa <nico a teknico.net> ha scritto:
>
> >> Se però il server non è raggiungibile ottengo in output un messaggio
> >> del genere:
> >>
> >> _mssql.error: DB-Lib error message 20009, severity 9:
> >> Server is unavailable or does not exist.
> >>
> >> Come potrei gestire questo errore in maniera "elegante"?
>
> > Non conosco il modulo in questione ma ti potrei consigliare
> >
> > import _mssql
> >
> > try:
> >     mssql=_mssql.connect('127.0.0.1 <http://127.0.0.1>','sa','')
> > except:
> >     mssql=None
>
> Per favore, no.
>
> Non silenziate gli errori con una except vuota: non saprete più cos'è
> successo.
>
> Come minimo fate:
>
> try:
>    mssql = _mssql.connect('127.0.0.1 <http://127.0.0.1>','sa','')
> except Exception, err:
>    print err
>
> Meglio ancora specificare l'eccezione:
>
> try:
>    mssql = _mssql.connect('127.0.0.1 <http://127.0.0.1>','sa','')
> except _mssql.error, err:
>    print err
>
> così altre eccezioni non gestite daranno un traceback completo.
>
>
> Infine, non uso SQL Server ma quel "_mssql" mi puzza di variabile interna.
> Non c'è qualcosa di più ufficiale da usare?
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20060727/293da765/attachment.htm


Maggiori informazioni sulla lista Python