NOM
pydhcplib.DhcpBasicPacket - Classe de base contenant un paquet dhcp.
SYNOPSIS
from pydhcplib.DhcpBasicPacket import DhcpBasicPacket
packet = DchpBasicPacket()
La classe pydhcplib.DhcpBasicPacket est la classe élémentaire de
traitement d’un paquet dhcp. Elle contient le strict nécessaire au
traitement de paquets, tous les ajouts et fonctions évoluées sont
déportées vers la classe DhcpPacket.
Un paquet dhcp est constitué de 2 parties distinctes : l’entête et les
options. L’entête d’un paquet à une taille fixe, et tous les champs
sont définis (voir RFC 2131). La taille de la partie optionnelle est
quand à elle variable et ne contenir qu’une seule option. Dans le
DhcpBasicPacket, chaques champs, optionnel ou non, est manipulé par les
mêmes fonction. Ainsi les methodes SetOption ou GetOption servent
autant à fixer ou récupérer le contenu d’un champs de l’entête qu’un
champs optionnel.
METHODES
IsDhcpPacket() - Renvoie True si le "Magic Cookie" est retrouvé au bon
endroit dans le packet. Sinon renvoie False.
DeleteOption(string) - Sert à supprimer un champs ou son contenu. Si le
champs n’existe pas, False est renvoyé. Si le champs est dans la partie
optionnelle du paquet dhcp, il est supprimé. Si le champs est dans
l’entête du paquet, l’ensemble des octets le constituant sont mis à 0.
string est le nom de l’option à supprimer.
GetOption(string) - Sert à récupérer la valeur d’une option. La methode
renvoie une liste d’octet avec le contenu de l’option ou False si
l’option n’existe pas. Les champs de l’entête du paquet dhcp sont
considérés comme des options et renvois toujours quelquechose.
SetOption(string,list) - Sert à fixer la valeur d’une option. Le
premier argument est le nom de l’option, le deuxième une liste d’octet
(comme [0,25,200]). Les noms d’options possible sont les noms des
champs de l’entête et les noms des options définies dans le module
pydhcplib.dhcp_constants. La taille de la liste d’octet dépend de la
définition du champs dans pydhcplib.dhcp_constants.
IsOption(string) - L’argument est un nom d’option. Renvoie True si
l’option existe dans le paquet. Renvoie toujours True pour un champs de
l’entête. Renvoie False si l’option n’existe pas et n’est pas un champs
d’entête.
EncodePacket() - Génère un paquet dhcp (une chaine de caractère)
encodant l’entête ainsi que toutes les options définies préalablement
dans le paquet (sans oublier le "Magic Cookie"). Cette chaine est un
paquet dhcp valide.
DecodePacket(string) - Prend en argument un paquet dhcp "brut" (une
chaine de caractère en fait) et décode tous les éléments pour les
rendre manipulable avec SetOption, GetOption, ou DeleteOption.
EXEMPLES
Programme d’exemple :
from pydhcplib.dhcp_packet import DhcpPacket
from pydhcplib.type_strlist import strlist
from pydhcplib.type_ipv4 import ipv4
packet = DhcpBasicPacket()
packet.SetOption("domain_name",strlist("anemon.org").list())
packet.SetOption("router",ipv4("192.168.0.1").list()+[6,4,2,1])
packet.SetOption("time_server",[100,100,100,7,6,4,2,1])
packet.SetOption("yiaddr",[192,168,0,18])
VOIR AUSSI
pydhcp(8), pydhcplib.hwmac(3), pydhcplib.ipv4(3), pydhcplib.strlist(3),
pydhcplib.DhcpPacket(3), pydhcplib.DhcpBasicPacket(3),
pydhcplib.DhcpNetwork(3), pydhcplib.DhcpClient(3),
pydhcplib.DhcpServer(3)
BUGS
Probablement plein... pydhcplib est en cours de développement. Voir
http://pydhcplib.tuxfamily.org/ pour plus d’informations.
AUTHOR
Mathieu Ignacio (mignacio[AT]april.org)
pydhcplib.DhcpBasicPacket(3)