Arduino Ethernet is a collection of libraries I have written to use within the Arduino programming environment in conjunction with the Ethernet shield.
While the individual libraries are downloaded within a single archive, they do not depend on each other (unless noted otherwise) and can be used independently.
The libraries are published under the GPLv2 (or, at your discretion, any later version).
Individual libraries
EthernetBonjour | Documentation
EthernetDHCP | Documentation
EthernetDNS | Documentation
Also, by popular demand, I've prepared a very simple demo sketch using DNS, DHCP and Bonjour together. Basically, it gets network configuration data via DHCP, then lets you resolve DNS names via the DNS server received from DHCP, all while announcing its DHCP-assigned IP address via link-local Bonjour — Basically a combination of examples from the individual libraries, which I also recommend to look at, as they contain lots of comments explaining how stuff works.