Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    19

    [PYTHON3] form html lgoin con NONCE

    salve raga, sto cercando di scrivere uno script per loggarmi ad 1 telefono voip, lo avevo già fatto per il loggarmi e modificare la configurazione del router e mi è andata bene, funzionava, ma questo telefono voip per l' autenticazione usa il sistema NONCE.
    mi invia il nonce e del codice javascript per creare un md5 che inserisce nella query post di login

    questa è la query post:

    username=admin&password=admin&encoded=admin%3Afd5a 1b451f77e2ae5a6a70bba9819583&nonce=c0a801080000000 6&goto=Logon&URL=%2F"


    c'è un modo per far eseguire l'algoritmo javascript da python cosi' da prendere i dati necessari da inviare via post?

    vi allego pure il codice javascript non so se può servirvi
    codice:
    // Derived from the RSA Data Security, Inc. MD5 Message Digest Algorithm
    //
    // Copyright (c) 1998 Art & Logic, Inc. All Rights Reserved.
    // Copyright (c) 1998 Rapid Logic, Inc. All Rights Reserved.
    // Copyright (c) 1996 Henri Torgemane. All Rights Reserved.
    //
    
    function array(n)
    {
    	for (i=0; i<n; i++) this[i]=0;
    	this.length=n;
    }
    
    // Some basic logical functions had to be rewritten because of a bug in
    // Javascript.. Just try to compute 0xffffffff >> 4 with it..
    // Of course, these functions are slower than the original would be, but
    // at least, they work!
    //
    
    function integer(n) { return n%(0xffffffff+1); }
    
    function shr(a,b)
    {
    	a=integer(a);
    	b=integer(b);
    
    	if (a-0x80000000>=0)
    	{
    		a   = a%0x80000000;
    		a >>= b;
    		a  += 0x40000000 >> (b-1);
    	}
    	else a >>= b;
    
    	return a;
    }
    
    function shl1(a)
    {
    	a = a%0x80000000;
    
    	if (a&0x40000000==0x40000000)
    	{
    		a-=0x40000000;
    		a*=2;
    		a+=0x80000000;
    	}
    	else a*=2;
    
    	return a;
    }
    
    function shl(a,b)
    {
    	a = integer(a);
    	b = integer(b);
    
    	for (var i=0; i<b; i++)
    		a=shl1(a);
    
    	return a;
    }
    
    function and(a,b)
    {
    	a = integer(a);
    	b = integer(b);
    
    	var t1 = (a-0x80000000);
    	var t2 = (b-0x80000000);
    
    	if (t1>=0)
    		if (t2>=0)
    			return ((t1&t2)+0x80000000);
    		else
    			return (t1&b);
    	else
    		if (t2>=0)
    			return (a&t2);
    		else
    			return (a&b);
    }
    
    function or(a,b)
    {
        a = integer(a);
        b = integer(b);
    
    	var t1 = (a-0x80000000);
    	var t2 = (b-0x80000000);
    
    	if (t1>=0)
    		if (t2>=0)
    			return ((t1|t2)+0x80000000);
    		else
    			return ((t1|b)+0x80000000);
    	else
    		if (t2>=0)
    			return ((a|t2)+0x80000000);
    		else
    			return (a|b);
    }
    
    function xor(a,b)
    {
    	a = integer(a);
    	b = integer(b);
    
    	var t1 = (a-0x80000000);
    	var t2 = (b-0x80000000);
    
    	if (t1>=0)
    		if (t2>=0)
    			return (t1^t2);
    		else
    			return ((t1^b)+0x80000000);
    	else
    		if (t2>=0)
    			return ((a^t2)+0x80000000);
    		else
    			return (a^b);
    }
    
    function not(a)
    {
    	a = integer(a);
    
    	return (0xffffffff-a);
    }
    
    /* Here begin the real algorithm */
    
    	var state = new array(4);
    	var count = new array(2);
    		count[0] = 0;
    		count[1] = 0;
    	var buffer = new array(64);
    	var transformBuffer = new array(16);
    	var digestBits = new array(16);
    
    	var S11 = 7;
    	var S12 = 12;
    	var S13 = 17;
    	var S14 = 22;
    	var S21 = 5;
    	var S22 = 9;
    	var S23 = 14;
    	var S24 = 20;
    	var S31 = 4;
    	var S32 = 11;
    	var S33 = 16;
    	var S34 = 23;
    	var S41 = 6;
    	var S42 = 10;
    	var S43 = 15;
    	var S44 = 21;
    
        function F(x,y,z)
    	{
            return or(and(x,y),and(not(x),z));
        }
    
        function G(x,y,z)
    	{
            return or(and(x,z),and(y,not(z)));
        }
    
        function H(x,y,z)
    	{
            return xor(xor(x,y),z);
        }
    
        function I(x,y,z)
    	{
            return xor(y,or(x,not(z)));
        }
    
        function rotateLeft(a,n)
    	{
            return or(shl(a,n),(shr(a,(32-n))));
        }
    
        function FF(a,b,c,d,x,s,ac)
    	{
            a = a+F(b, c, d) + x + ac;
            a = rotateLeft(a, s);
            a = a+b;
            return a;
        }
    
        function GG(a,b,c,d,x,s,ac)
    	{
            a = a+G(b,c,d)+x+ac;
            a = rotateLeft(a,s);
            a = a+b;
            return a;
        }
    
        function HH(a,b,c,d,x,s,ac)
    	{
            a = a+H(b, c, d) + x + ac;
            a = rotateLeft(a, s);
            a = a+b;
            return a;
        }
    
        function II(a,b,c,d,x,s,ac)
    	{
            a = a+I(b, c, d) + x + ac;
            a = rotateLeft(a, s);
            a = a+b;
            return a;
        }
    
        function transform(buf,offset)
    	{
            var a=0, b=0, c=0, d=0;
            var x = transformBuffer;
    
            a = state[0];
            b = state[1];
            c = state[2];
            d = state[3];
    
            for (i = 0; i < 16; i++)
    		{
                x[i] = and(buf[i*4+offset],0xff);
    
                for (j = 1; j < 4; j++)
    			{
                    x[i]+=shl(and(buf[i*4+j+offset] ,0xff), j * 8);
                }
            }
    
            /* Round 1 */
            a = FF ( a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
            d = FF ( d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
            c = FF ( c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
            b = FF ( b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
            a = FF ( a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
            d = FF ( d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
            c = FF ( c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
            b = FF ( b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
            a = FF ( a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
            d = FF ( d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
            c = FF ( c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
            b = FF ( b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
            a = FF ( a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
            d = FF ( d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
            c = FF ( c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
            b = FF ( b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
    
            /* Round 2 */
            a = GG ( a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
            d = GG ( d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
            c = GG ( c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
            b = GG ( b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
            a = GG ( a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
            d = GG ( d, a, b, c, x[10], S22,  0x2441453); /* 22 */
            c = GG ( c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
            b = GG ( b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
            a = GG ( a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
            d = GG ( d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
            c = GG ( c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
            b = GG ( b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
            a = GG ( a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
            d = GG ( d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
            c = GG ( c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
            b = GG ( b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
    
            /* Round 3 */
            a = HH ( a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
            d = HH ( d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
            c = HH ( c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
            b = HH ( b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
            a = HH ( a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
            d = HH ( d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
            c = HH ( c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
            b = HH ( b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
            a = HH ( a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
            d = HH ( d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
            c = HH ( c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
            b = HH ( b, c, d, a, x[ 6], S34,  0x4881d05); /* 44 */
            a = HH ( a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
            d = HH ( d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
            c = HH ( c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
            b = HH ( b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
    
            /* Round 4 */
            a = II ( a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
            d = II ( d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
            c = II ( c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
            b = II ( b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
            a = II ( a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
            d = II ( d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
            c = II ( c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
            b = II ( b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
            a = II ( a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
            d = II ( d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
            c = II ( c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
            b = II ( b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
            a = II ( a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
            d = II ( d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
            c = II ( c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
            b = II ( b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
    
            state[0] +=a;
            state[1] +=b;
            state[2] +=c;
            state[3] +=d;
    
        }
    
        function init()
    	{
            count[0]=count[1] = 0;
            state[0] = 0x67452301;
            state[1] = 0xefcdab89;
            state[2] = 0x98badcfe;
            state[3] = 0x10325476;
            for (i = 0; i < digestBits.length; i++)
                digestBits[i] = 0;
        }
    
        function update(b)
    	{
            var index,i;
    
            index = and(shr(count[0],3) , 0x3f);
            if (count[0]<0xffffffff-7)
              count[0] += 8;
            else {
              count[1]++;
              count[0]-=0xffffffff+1;
              count[0]+=8;
            }
            buffer[index] = and(b,0xff);
            if (index  >= 63) {
                transform(buffer, 0);
            }
        }
    
        function finish()
    	{
            var bits = new array(8);
            var padding;
            var i=0, index=0, padLen=0;
    
            for (i = 0; i < 4; i++)
    		{
                bits[i] = and(shr(count[0],(i * 8)), 0xff);
            }
    
            for (i = 0; i < 4; i++)
    		{
                bits[i+4]=and(shr(count[1],(i * 8)), 0xff);
            }
    
            index = and(shr(count[0], 3) ,0x3f);
            padLen = (index < 56) ? (56 - index) : (120 - index);
            padding = new array(64);
            padding[0] = 0x80;
    
            for (i=0;i<padLen;i++)
              update(padding[i]);
    
            for (i=0;i<8;i++)
              update(bits[i]);
    
            for (i = 0; i < 4; i++)
    		{
                for (j = 0; j < 4; j++)
    			{
                    digestBits[i*4+j] = and(shr(state[i], (j * 8)) , 0xff);
                }
            }
        }
    
    /* End of the MD5 algorithm */
    
    function hexa(n) {
     var hexa_h = "0123456789abcdef";
     var hexa_c="";
     var hexa_m=n;
     for (hexa_i=0;hexa_i<8;hexa_i++) {
       hexa_c=hexa_h.charAt(Math.abs(hexa_m)%16)+hexa_c;
       hexa_m=Math.floor(hexa_m/16);
     }
     return hexa_c;
    }
    
    
    var ascii="01234567890123456789012345678901" +
              " !\"#" + '\$' + "%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"+
              "[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
    
    function md5(entree)
    {
     var l,s,k,ka,kb,kc,kd;
    
     init();
     for (k=0;k<entree.length;k++) {
       l=entree.charAt(k);
       update(ascii.lastIndexOf(l));
     }
     finish();
     ka=kb=kc=kd=0;
     for (i=0;i<4;i++) ka+=shl(digestBits[15-i], (i*8));
     for (i=4;i<8;i++) kb+=shl(digestBits[15-i], ((i-4)*8));
     for (i=8;i<12;i++) kc+=shl(digestBits[15-i], ((i-8)*8));
     for (i=12;i<16;i++) kd+=shl(digestBits[15-i], ((i-12)*8));
     s=hexa(kd)+hexa(kc)+hexa(kb)+hexa(ka);
     return s;
    }
    
      function encode() {
        document.submitForm.encoded.value = document.submitForm.username.value + ":" + md5(document.submitForm.username.value + ":" + document.submitForm.password.value + ":" + "c0a8012c0000050c");  // sets the hidden field value to whatever md5 returns.
      }

  2. #2
    La cosa più semplice probabilmente è usare un motore di JavaScript; vedi ad esempio qui per un wrapper Python di v8.

    Se però lo script in questione è statico (non ci sono "pezzi" che variano di volta in volta) e tutto quello che devi fare è calcolare l'md5 della password ed incollarlo come nella funzione encode, puoi reimplementare giusto encode() in Python in due righe (sfruttando la funzione md5 già disponibile nella libreria standard Python).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    19
    Lo script è sempre lo stesso si, ma la variabile nonce cambia ad ogni richiesta di login quindi ne viene fuori un encoded sempre diverso.
    ho dato una rapida occhiata a quel wrapper ma sono un novizio^^ cercherò di capire come usarlo e cosa farci soprattutto

  4. #4
    Be' in realtà la variabile in questione la puoi estrarre dal file HTML tramite un parser HTML come BeautifulSoup...
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    19
    sto provando diverse soluzioni ma non ci riesco...

    importo la pagina in una variabile con urllib2 però poi non so come estrapolarmi con PyV8 il risultato della funziona javascript

    beautifulsoup credo non faccia proprio al caso mio

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    19
    allora, sono riuscito a capire che l'md5 generato posso farlo con python in una riga... pensavo che quel javascript x generare l'md5 fosse chissà che cosa... invece no.

    dunque, ora so come generarmi l'md5 senza dovermi prendere il risultato dal javascript, mi manca xò la lettura del nonce dalla pagina html.

    stavo pure provando, dopo che apro il link con urllib a fare una ricerca della stringa nonce ed appena la trovo a prelevarmi i successivi 16 caratteri (escludendo il segno = ) sapete dirmi la via più veloce x fare ciò?
    cioè ho una variabile stringa che contiene il testo di una pagina html, devo cercare al suo interno il testo nonce per prelevare i successivi 16 caratteri.
    può servirmi x altre cose in futuro.

    nel frattempo forse qui beautifulsoup può essermi utile x estrapolare il nonce dall'html, faccio una prova

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    19
    raga ho un problema con urllib

    pagina = urllib.request.urlopen(url).read()

    mi da errore di buffersize al max riesco a mettere
    pagina = urllib.request.urlopen(url).read(14000)

    ma non mi arriva a leggere le ultime righe della pagina html che poi devo passare a beautifulsoup dove è inserito il nonce che devo leggermi

    come faccio?

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    19
    alla fine sto riducendo il tutto ad una barbarie assurda... ma se in altri modi non ci riesco che ci posso fare

    ho risolto cosi'
    codice:
    pagina = urllib.request.urlopen(url)
    codice:
    a=str(pagina.info())
    nell'header c'è il nonce che mi interessa

    ho un problema, per aprire la pagina uso urllib.request.urlopen, che crea una nuova istanza nel telefono e mi genera un nonce per mandare la stringa senza fargli generare un nuovo nonce come faccio?

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    19
    allora... questo è il codice, si è molto spartano ma ho cercato di reperire le informazioni che mi servivano nel modo più semplice x me... ho tentato parsing e cose varie ma quanto meno x ora me ne sono uscito cosi' appena il tutto funzionerà lo farò come si deve, questo script

    codice:
        import http.cookiejar, urllib.request, http.client, hashlib  
          
        url='http://192.168.1.3/index1.htm'  
        nonce=""  
        url2='http://192.168.1.3/dspset.htm'  
        username="admin"  
        password="admin"  
        dset="addRingTypeRule=53&setringtype=1&addRingTypeRuleEntry=+Add++"  
        dsetg="addRingTypeRule=5x&setringtype=4&addRingTypeRuleEntry=+Add++&ringtyperuleEntry=53"  
          
          
        user_agent="Mozilla/5.0 (X11; Linux i686; rv:14.0) Gecko/20100101 Firefox/14.0.1"  
        connection="keep-alive"  
          
        cj = http.cookiejar.CookieJar()  
        opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))  
        urllib.request.install_opener(opener)  
          
        pagina = urllib.request.urlopen(url)  
        a=str(pagina.info())  
        c=0  
        for i in a:  
            if (c>144 and c<161):  
                nonce=nonce+i  
            c=c+1  
              
        encode=str(hashlib.md5((username+":"+password+":"+nonce).encode()).hexdigest())  
        log="username=admin&password=admin&encoded=admin\  
        %3A"+encode+"&nonce="+nonce+"&goto=Logon&URL=%2F"  
        print(log)  
          
        headers = { 'User-Agent' : user_agent,\  
                    'Connection' : connection,\  
                    'Cookie' : nonce }  
          
        invio=urllib.request.Request(url,log.encode('ascii'),headers)  
        urllib.request.urlopen(invio)  
          
        print(cj)  
          
        invio2=urllib.request.Request(url2,dset.encode('ascii'),headers)  
        urllib.request.urlopen(invio2)  
          
        print(cj)
    il problema è che ogni volta che viene eseguito urllib.request.urlopen il telefono mi invia un nuovo nonce, quindi è come se al login non mi avesse loggato o non mantenesse la sessione dopo nn so...

    so una cosa xò, che se eseguo lo script i print cj mi stampano ogni volta un cookie auth diverso

    se invece mi loggo con firefox, vado a leggere il cookie auth, setto manualmente il nonce del mio script con quel valore e modifico lo script in modo da inviare solo
    invio2=urllib.request.Request(url2,dset.encode('as cii'),headers)
    urllib.request.urlopen(invio2)
    con le query post che modificano delle impostazioni nel telefono, mi funziona! xò stranamente il print cj mi stampa vuoto senza il cookie auth

    cosa sbaglio? sono giorni che ci sbatto la testa

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    19
    superati anche questi inghippi credo di essere ormai al photofinish...
    i problemi risolti sono stati il cookie che cambiava ad ogni richiesta, e quello che mi da l'errore che vi posto alla fine cioè l'aggiunta di auth= al valore nonce che passo in header, perchè cosi' firefox fa quando mi loggo da browser e cosi' non facevo nell'invio dell header con python

    codice:
    import http.cookiejar, urllib.request, http.client, hashlib
    
    url='http://192.168.1.3/index1.htm'
    nonce=""
    nonce2="auth="
    url2='http://192.168.1.3/dspset.htm'
    username="admin"
    password="admin"
    dset="addRingTypeRule=53&setringtype=1&addRingTypeRuleEntry=+Add++"
    dsetg="addRingTypeRule=5x&setringtype=4&addRingTypeRuleEntry=+Add++&ringtyperuleEntry=53"
    
    
    user_agent="Mozilla/5.0 (X11; Linux i686; rv:14.0) Gecko/20100101 Firefox/14.0.1"
    connection="keep-alive"
    
    cj = http.cookiejar.CookieJar()
    opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
    
    pagina=opener.open(url)
    
    a=str(pagina.info())
    print("\n\n"+a+"\n\n")
    c=0
    for i in a:
        if (c>144 and c<161):
            nonce=nonce+i
        c=c+1
       
    opener.addheaders=[('Cookie', nonce2)]
    nonce2=nonce2+nonce
    
    encode=str(hashlib.md5((username+":"+password+":"+nonce).encode()).hexdigest())
    print(encode)
    log="username=admin&password=admin&encoded=admin\
    %3A"+encode+"&nonce="+nonce+"&goto=Logon&URL=%2F"
    print(log)
    
    headers = { 'User-Agent' : user_agent,\
                'Connection' : connection,\
                'Cookie' : nonce2
                }
    
    invio=urllib.request.Request(url,log.encode('ascii'),headers)
    urllib.request.urlopen(invio)
    
    print(cj)
    
    invio2=urllib.request.Request(url2,dset.encode('ascii'),headers)
    urllib.request.urlopen(invio2)
    
    print(cj)
    nonce2=nonce2+nonce serve per aggiungermi la voce auth=c808......1f altrimenti l'header che passo risulta solo Cookie: c808.....1f mentre firefox passa Cookie: auth=c808.....1f ma l'aggiunta di questo auth mi genera questo errore

    codice:
    Traceback (most recent call last):
      File "C:\Users\mirko\Desktop\python\ip400.py", line 44, in <module>
        urllib.request.urlopen(invio)
      File "C:\Python33\lib\urllib\request.py", line 156, in urlopen
        return opener.open(url, data, timeout)
      File "C:\Python33\lib\urllib\request.py", line 469, in open
        response = self._open(req, data)
      File "C:\Python33\lib\urllib\request.py", line 487, in _open
        '_open', req)
      File "C:\Python33\lib\urllib\request.py", line 447, in _call_chain
        result = func(*args)
      File "C:\Python33\lib\urllib\request.py", line 1268, in http_open
        return self.do_open(http.client.HTTPConnection, req)
      File "C:\Python33\lib\urllib\request.py", line 1253, in do_open
        r = h.getresponse()
      File "C:\Python33\lib\http\client.py", line 1143, in getresponse
        response.begin()
      File "C:\Python33\lib\http\client.py", line 354, in begin
        version, status, reason = self._read_status()
      File "C:\Python33\lib\http\client.py", line 316, in _read_status
        line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
      File "C:\Python33\lib\socket.py", line 297, in readinto
        return self._sock.recv_into(b)
    ConnectionResetError: [WinError 10054] Connessione in corso interrotta forzatamente dall'host remoto
    any help?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.