Net_DNS: A resolver library written in native PHP
Net_DNS is a resolver library written in PHP. It was ported
to PHP from the PERL Net::DNS module.
Very little of the code contained in this class is my own.
Most of it is a direct port from the PERL module.
- 5-15-2002: Version 0.01 released (devel)
Initial release. Fairly unusable.
- 8-15-2002: Version 0.02 released (beta)
Many bugs fixed. TSIG RR type added for dynamic DNS updates.
- 9-15-2002: Version 0.03 released (beta)
Now has stable support of DNS queries, socket handling, and packet parsing/generating. Any problems at this point should be considered bugs and should be reported ASAP. Running this code with E_ALL should be acceptable -- any warnings generated should be submitted to eric@ypass.net.
In fact, the only thing that is really my code is the UDP
data transmission code, simply because socket support in PHP
is still considered "EXPERIMENTAL." This will be rectified
when socket support is finalized.
First of all, let me start by saying that I am _NOT_ a PERL programmer.
Since taking on this project, I have learned an entirely new hatred of
PERL. Not only is it slow and cumbersome, it also has a lot of incredibly
retarted "features" and a ridiculous syntax. Although i can read
PERL quite well, I can not write it. If you find any oddities, this
is probably the reason. Please let me know of ANY problems you find.
This class is by no means complete. As of this writing, the
distribution only contains support for A, NS, and CNAME RR
types. Feel free to add support for other types and send them
to me. I will be adding more support for various RR types when
*I* need them, or when someone requests it. If you need a
specific RR type done, please let me know at
eric@ypass.net.
Documentation
Documentation is still being written, although most of the major pieces are
now complete. You can find my (poorly written) documentation at
http://www.ypass.net/php/Net_DNS/documentation.
You can find documentation for the PERL Net::DNS module at
http://www.fuhr.org/~mfuhr/perldns/
As one would expect, there are some differences between the PERL
version and my version. Some of these limitations are caused by language
semantics, others because I didn't like the original design.
Bugs and Limitations
This release should be relatively bug free. If you find a bug, please let me
know.
Installation
Copy the packaged files from the archive into your PHP include directory.
If you have the PEAR modules installed, you can copy the files under the
Net directory.
I have finished getting everything PEAR compliant and Net_DNS is now part of PEAR.
If you have pear installed, you can simply type:
# pear install Net_DNS
Otherwise, you will need to install manually.
The PHP include directory is usually /usr/share/php or /usr/local/lib/php. This
directory can be determined by examining your php.ini file. If your include
directory is /usr/share/php, and you have PEAR installed, issue:
# cp -Rp Net_DNS-0.03beta-CVS/* /usr/share/php/Net/
|