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)