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

Répondre à