[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: vsftpd, ip dynamique, routeur et mode passif



	bonjour,


Le vendredi 28 mai 2004, Minux a écrit...


> voilà le script complet qui me permet d'updater mon ip vers dyndns via 
> ez-ipupdate :

J'ai fabriqué ça, mais..._mais_, il y a beaucoup de mais:

Je ne sais pas ce qu'il y a dans les fichiers ip, j'en ai déduit que
c'était une ip toute bête
Et j'ai également supposé que la chaîne pasv_address=x.x.x.x
était en fin de fichier
Tu mets ça où tu veux, mais ça suppose également que les deux fichiers
old et new de ip existent
Quand au relancement du démon, tu remplaces [i]netd par [v]fstpd , à
condition qu'il n'y ait qu'une session..., pareil pour les chemins de
fichier.

Il n'y a aucune gestion d'erreur là-dedans, c'est très bourrin, mais mes
simulations bidon ont fonctionné:

#!/usr/bin/env python


import os
from signal import SIGHUP

fichierIpNew = "./newip"
fichierIpOld = "./oldip"
fichierDeConf = "./fichier_de_conf"

def getpspid ():
    fp = os.popen ("ps aux|awk '/[i]netd/ {print $2}'", "r")
    pid = fp.read()
    fp.close ()
    return pid

def getIp (fichier):
    fd = os.open (fichier, os.O_RDONLY)
    ip = os.read (fd, 16)
    os.close (fd)
    return (ip, len (ip))

def substitute ():
    told = getIp (fichierIpOld)
    tnew = getIp (fichierIpNew)
    fd = os.open (fichierDeConf, os.O_RDWR)
    os.lseek (fd, -1 * told[1], 2)
    os.write (fd, "")
    os.write (fd, tnew[0])
    os.close (fd)


def main ():
    substitute ()
    os.kill (int (getpspid ()), SIGHUP)

if __name__ == '__main__':
    main ()

-- 
jm



Reply to: