pydhcp - a dhcp command line tool
pydhcp --input <TYPE;OPTIONS;NAME> --output <TYPE;OPTIONS;NAME>
pydhcp is a command line tool to read or write dhcp packet on network,
and translate from raw data to human readable informations (and
vice-et-versa). pydhcp is a part of the pydhcplib python library.
Input and Output field description
pydhcp takes an input and an output argument. Input and output are
described in the same way. For example :
pydhcp --input ’device;binary|up;eth0:68’ --output
’file;readable;myfile.txt’ -c 1
There is 5 types for the <TYPE> field. Only one type at once can be
used : device, address, file, stdin and stdout. device tells pydhcp to
write or listen directly on the network interface and port. address is
to write or listen on a specific Internet Address and port (like
192.168.1.1:67 ). file read or write data from or to a file. stdin read
data from stdin, stdout write data on stdout.
You can use multiple options in the option field by separate them with
a pipe |. There is 4 options for this field : readable, binary, up and
noup. readable id to read or write data in a human readable language :
a packet definition language. This language is described later. Binary
form stand for reading or writing packets in the same binary form they
are on the network : an UDP packet. readable and binary are mutually
exclusive. Option up tells pydhcp to set the network interface up if
not. noup tells not to set up the interface. up and noup are only
useful in combination with the device type. Default is noup.
Describe the name of the device (eth0:67,wlan0:client) , the address
(192.168.1.1), or the filename (foo.txt). You can use a port number or
the keywords client and server for standard dhcp port.
Other command line options of pydhcp
Option -c : Number of packet to read or write. 0 for unlimited number
of packet. Default is 0.
- Only one dhcp packet per file, then count is set to 1 for file I/O -
No readable transfert on network (address or device). Binary only.
Number of packets to process.
Read a client packet on any address and write it on a human readable
pydhcp -i "address;binary;0.0.0.0:67" -o "file;readable;myfile.bin"
Read a binary dhcp packet from a file and print it on stdout in a human
readable form :
pydhcp -i "file;binary;myfile.bin" -o "stdout;readable;"
Mathieu Ignacio (mignacio[AT]april.org)