Bonjour,

voila, j'ai écris un petit programme qui me permet de scanner les ports d'une adresse ip et de savoir s'ils sont ouverts ou fermés.
Jusque là tout va bien, cela fonctionne parfaitement;
Mais maintenant je souhaite savoir quels sont les services qui tournent sur les port dits 'ouverts'.
J'ai donc pensé à utiliser la fonction getservbyport(), laquelle n'est pourtant pas trop récente pour ma version de python puisque j'ai installé Active Python 2.4.2.10 et pourtant, à l'exécution voila ce que j'obtiens :

D'abord le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/python
# -*- coding: windows-1251 -*-
import socket,re
 
class StoneFree:
    host='x.x.x.x'
    port=19
 
    while port < 81:
        my_socket=socket.socket(
        socket.AF_INET,
        socket.SOCK_STREAM, 
        )
        my_socket.settimeout(1.)    
 
        if not my_socket.connect_ex((host,port)):
            daemon=my_socket.getservbyport(port)
            print "Порт# ",port,' є відкринено ---> ', daemon
 
        elif my_socket.connect_ex((host,port)):
            print "Порт# ",port,' є закринено'
        port=port+1
 
        my_socket.close()
ensuite, le message d'erreur :
daemon=my_socket.getservbyport(port)
AttributeError:'_socketobject' object has no attribute 'getservbyport'
Y'aurait-il quelquechose à initialiser dans le socket crée avant de se servir de cette fonction?

Merci pour votre aide,
rc