NOM¶
pydhcplib.DhcpBasicPacket - Classe de base contenant un paquet dhcp.
SYNOPSIS¶
from pydhcplib.DhcpBasicPacket import DhcpBasicPacket
packet = DchpBasicPacket()
DESCRIPTION¶
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)