Re: [Python] Emulare il comando ping...
raw sockets + icmp scapy penso faccia al tuo caso. Il 13 marzo 2012 07:05, Ulysses Kalle ha scritto: > Stavo cercando di fare uno script che emuli il comando "ping" del terminale > (o dos, dipende dal sistema). > > Riesco a connettermi a un host ma poi? > Non saprei cosa inviare, sempre che la procedura sia giusta (uso i socket). > > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > -- Quiero ser el rayo de sol que cada día te despierta para hacerte respirar y vivir en me. "Favola -Moda". ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Emulare il comando ping...
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Il 13/03/2012 07:05, Ulysses Kalle ha scritto: > Stavo cercando di fare uno script che emuli il comando "ping" del > terminale (o dos, dipende dal sistema). > > Riesco a connettermi a un host ma poi? > Non saprei cosa inviare, sempre che la procedura sia giusta (uso i socket). > Basta una veloce ricerca su Internet per avere la risposta: http://lmgtfy.com/?q=ping+python Ciao Manlio -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk9fYlEACgkQscQJ24LbaUTv8wCfRfxGLHbQtT3K4cHvMlzp/kHO GtkAn2MoA2JJPSYTRS2JuV4hH0mGFu7J =gcft -END PGP SIGNATURE- ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Emulare il comando ping...
Il 13 marzo 2012 08:49, Giorgio Zoppi ha scritto: > raw sockets + icmp > scapy penso faccia al tuo caso. Purtroppo questo richiede privilegi di root. Ci ho sbattuto la testa un buon paio d'ore sul problema e sono giunto alla conclusione che l'unica soluzione è parsare l'output di 'ping' e tanti saluti. Se può tornare utile all'OP, eccolo qui (funzia solo su UNIX): from subprocess import call, PIPE def ping(host, timeout=10): """Return True if host is up.""" # -q = quiet output # -c = count # -w = total timeout # -W = timeout for a single ICMP REPLY # -n = no DNS resolution for the output timeout = str(timeout) assert timeout.isdigit(), timeout retcode = call(["ping", "-q", "-c", "1", "-w", timeout, "-W", "1", "-n", host], stdout=PIPE) return True if retcode == 0 else False ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Emulare il comando ping...
On Wednesday, March 14, 2012, Giampaolo Rodolà wrote: > > raw sockets + icmp > > scapy penso faccia al tuo caso. > > Purtroppo questo richiede privilegi di root. +1 Temo anche io. -- . ..: -enrico- ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Emulare il comando ping...
On Wed, 14 Mar 2012 08:49:06 +0100, enrico franchi wrote: On Wednesday, March 14, 2012, Giampaolo Rodolà wrote: > raw sockets + icmp > scapy penso faccia al tuo caso. Purtroppo questo richiede privilegi di root. +1 Temo anche io. Certo, infatti ping è un comando setuid. -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Emulare il comando ping...
Il 14 marzo 2012 10:45, Daniele Varrazzo ha scritto: > On Wed, 14 Mar 2012 08:49:06 +0100, enrico franchi wrote: >> >> On Wednesday, March 14, 2012, Giampaolo Rodolà wrote: >> >> >>> > raw sockets + icmp >>> > scapy penso faccia al tuo caso. >>> >>> Purtroppo questo richiede privilegi di root. >> >> >> >> +1 >> >> Temo anche io. +1 per il parsing, pare l'opzione migliore...perche io no porrei mai chmod u+s a python Altre opzioni tipo wrapping o embedding python in un binario suid..bo non so quanto siano sicure. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Emulare il comando ping...
Premessa: sono uno sviluppatore professionista da 20 anni in vari linguaggi, ma Pythonista amatoriale (ed entusiasta) da 1, vi leggo solo, senza mai scrivere. Per risolvere un problema simile ho goggleato vari tipi di soluzioni possibili e ne ho trovata una che ha il difetto delle basse performance, ma è sicuramente alternativa: Nella variabile IP_curr c'è ovviamente l'IP da pingare. import socket try: host = socket.gethostbyaddr(IP_curr)[0] except socket.herror: host = 0 if host == 0: msg = msg + "OFFLINE" else: msg = msg + str(host) print msg > > Da: Giorgio Zoppi >A: Discussioni generali sul linguaggio Python >Inviato: Mercoledì 14 Marzo 2012 11:21 >Oggetto: Re: [Python] Emulare il comando ping... > >Il 14 marzo 2012 10:45, Daniele Varrazzo ha scritto: >> On Wed, 14 Mar 2012 08:49:06 +0100, enrico franchi wrote: >>> >>> On Wednesday, March 14, 2012, Giampaolo Rodolà wrote: >>> >>> >>>> > raw sockets + icmp >>>> > scapy penso faccia al tuo caso. >>>> >>>> Purtroppo questo richiede privilegi di root. >>> >>> >>> >>> +1 >>> >>> Temo anche io. > >+1 per il parsing, pare l'opzione migliore...perche io no porrei mai >chmod u+s a python >Altre opzioni tipo wrapping o embedding python in un binario suid..bo >non so quanto siano sicure. >___ >Python mailing list >Python@lists.python.it >http://lists.python.it/mailman/listinfo/python > > > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Emulare il comando ping...
2012/3/14 Val > import socket > > try: > host = socket.gethostbyaddr(IP_curr)[0] > except socket.herror: > host = 0 > > >if host == 0: > msg = msg + "OFFLINE" > else: > msg = msg + str(host) > > print msg > Non so se funziona, ma come codice io lo scriverei così: try: msg += str(socket.gethostbyaddr(IP_curr)[0]) except socket.herror: msg += "OFFLINE" Ciao. Marco. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Emulare il comando ping...
Il 14 marzo 2012 12:14, Val ha scritto: > > > Premessa: sono uno sviluppatore professionista da 20 anni in vari linguaggi, > ma Pythonista amatoriale (ed entusiasta) da 1, vi leggo solo, senza mai > scrivere. > Per risolvere un problema simile ho goggleato vari tipi di soluzioni > possibili e ne ho trovata una che ha il difetto delle basse performance, ma è > sicuramente alternativa: > Nella variabile IP_curr c'è ovviamente l'IP da pingare. > > > import socket > > > try: > host = socket.gethostbyaddr(IP_curr)[0] > except socket.herror: > host = 0 > > > if host == 0: > msg = msg + "OFFLINE" > else: > msg = msg + str(host) > > print msg Non mi pare molto affidabile. Col mio provider ad esempio non funziona: >>> socket.gethostbyaddr('adksndkasndk.com') # dominio non registrato ('ar.libero.it', [], ['212.52.82.27']) >>> --- Giampaolo http://code.google.com/p/pyftpdlib/ http://code.google.com/p/psutil/ http://code.google.com/p/pysendfile/ ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Emulare il comando ping...
ma,... io direi che ci sono tante soluzioni per emulare il Ping di sistema: Per iniziare dalla più complessa, è quella di costruire tu stesso un pacchetto syn che attende hack e calcolarne il tempo a/r. Il più meraviglioso e facile sarebbe Scapy con il quale ti puoi divertire ed ottenere tantissimi risultati (certo necessita di autorizzazioni root - su OS Linux per es.) Puoi utilizzare il ping del tuo OS catturando e gestendo l'output. O allora puoi usare direttamente il full-connect del TCP o altre soluzioni ancora... non hai che da sciegliere. Ma ti propongo una cosa... prova a fare un ping UDP !!! eheheheh Salutoni Re Da: Ulysses Kalle A: Discussioni generali sul linguaggio Python Inviato: Martedì 13 Marzo 2012 7:05 Oggetto: [Python] Emulare il comando ping... Stavo cercando di fare uno script che emuli il comando "ping" del terminale (o dos, dipende dal sistema). Riesco a connettermi a un host ma poi? Non saprei cosa inviare, sempre che la procedura sia giusta (uso i socket). ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Emulare il comando ping...
Scusatemi, mi sono scordato di dire che io avevo la necessità primaria di pingare indirizzi IP multipli all'interno di una grossa rete aziendale, non su internet! Chiedo venia Valerio - Messaggio originale - > Da: Giampaolo Rodolà > A: Val ; Discussioni generali sul linguaggio Python > > Cc: > Inviato: Mercoledì 14 Marzo 2012 12:42 > Oggetto: Re: [Python] Emulare il comando ping... > > Il 14 marzo 2012 12:14, Val ha scritto: >> >> >> Premessa: sono uno sviluppatore professionista da 20 anni in vari > linguaggi, ma Pythonista amatoriale (ed entusiasta) da 1, vi leggo solo, > senza > mai scrivere. >> Per risolvere un problema simile ho goggleato vari tipi di soluzioni > possibili e ne ho trovata una che ha il difetto delle basse performance, ma è > sicuramente alternativa: >> Nella variabile IP_curr c'è ovviamente l'IP da pingare. >> >> >> import socket >> >> >> try: >> host = socket.gethostbyaddr(IP_curr)[0] >> except socket.herror: >> host = 0 >> >> >> if host == 0: >> msg = msg + "OFFLINE" >> else: >> msg = msg + str(host) >> >> print msg > > Non mi pare molto affidabile. Col mio provider ad esempio non funziona: > > >>>> socket.gethostbyaddr('adksndkasndk.com') # dominio non > registrato > ('ar.libero.it', [], ['212.52.82.27']) >>>> > > > --- Giampaolo > http://code.google.com/p/pyftpdlib/ > http://code.google.com/p/psutil/ > http://code.google.com/p/pysendfile/ > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Emulare il comando ping...
2012/3/14 Val Scusatemi, mi sono scordato di dire che io avevo la necessità primaria di > pingare indirizzi IP multipli all'interno di una grossa rete aziendale, non > su internet! > quando ne ho avuto bisogno mille anni fa, ho usato 'import subprocess' e /usr/bin/fping anziche' ping ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Emulare il comando ping...
Grazie mille per la risposta, ora cerco in giro... Il giorno 13/mar/2012 08:50, "Giorgio Zoppi" ha scritto: > raw sockets + icmp > scapy penso faccia al tuo caso. > > Il 13 marzo 2012 07:05, Ulysses Kalle ha > scritto: > > Stavo cercando di fare uno script che emuli il comando "ping" del > terminale > > (o dos, dipende dal sistema). > > > > Riesco a connettermi a un host ma poi? > > Non saprei cosa inviare, sempre che la procedura sia giusta (uso i > socket). > > > > ___ > > Python mailing list > > Python@lists.python.it > > http://lists.python.it/mailman/listinfo/python > > > > > > -- > Quiero ser el rayo de sol que cada día te despierta > para hacerte respirar y vivir en me. > "Favola -Moda". > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Emulare il comando ping...
2012/3/14 Marco Mariani > Scusatemi, mi sono scordato di dire che io avevo la necessità primaria di >> pingare indirizzi IP multipli all'interno di una grossa rete aziendale, non >> su internet! >> > nmap? -- Andrea Francia http://www.andreafrancia.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Emulare il comando ping...
2012/3/14 Val : > Scusatemi, mi sono scordato di dire che io avevo la necessità primaria di > pingare indirizzi IP multipli all'interno di una grossa rete aziendale, non > su internet! Se devi controllare che le macchine siano attive guarda questa recipe del "dott. prof. sup. uff. lup. man." Nicola Larosa http://code.activestate.com/recipes/52302-pyheartbeat-detecting-inactive-computers/ > Chiedo venia ...per il top-posting? Scusato ciao -- Gian Mario Tagliaretti GNOME Foundation member gia...@gnome.org ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Emulare il comando ping...
Gian Mario Tagliaretti wrote: > Se devi controllare che le macchine siano attive guarda questa recipe > del "dott. prof. sup. uff. lup. man." Nicola Larosa > http://code.activestate.com/recipes/52302-pyheartbeat-detecting-inactive-computers/ Maro' che hai tirato fuori, non m'era neanche venuta in mente. :-) -- Nicola Larosa - http://www.tekNico.net/ What the MPAA and RIAA and the SAG are doing when they attempt to put in digital restrictions management into computer hardware and force ISPs to filter content is the equivalent of the Luddites burning water mills and power looms. - Vladimir Sedach, December 2011 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python