1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
<pre>
<font color="#0000ff">// Copyright (c) 2002 David Muse</font>
<font color="#0000ff">// See the file COPYING for more information</font>
<font color="#a020f0">#include </font><font color="#ff00ff"><rudiments/hostentry.h></font>
<font color="#a020f0">#include </font><font color="#ff00ff"><stdio.h></font>
<font color="#a020f0">#ifdef RUDIMENTS_NAMESPACE</font>
<font color="#a52a2a"><b>using</b></font> <font color="#2e8b57"><b>namespace</b></font> rudiments;
<font color="#a020f0">#endif</font>
<font color="#0000ff">// this function takes addr[]={127,1,1,0} and returns "127.1.1.0"</font>
<font color="#2e8b57"><b>char</b></font> *getAddressString(<font color="#2e8b57"><b>int</b></font> length, <font color="#2e8b57"><b>const</b></font> <font color="#2e8b57"><b>char</b></font> *addr) {
<font color="#2e8b57"><b>char</b></font> *address=<font color="#a52a2a"><b>new</b></font> <font color="#2e8b57"><b>char</b></font>[(length*<font color="#ff00ff">4</font>)+<font color="#ff00ff">1</font>];
address[<font color="#ff00ff">0</font>]=(<font color="#2e8b57"><b>char</b></font>)<font color="#ff00ff">NULL</font>;
<font color="#a52a2a"><b>for</b></font> (<font color="#2e8b57"><b>int</b></font> byte=<font color="#ff00ff">0</font>; byte<length; byte++) {
sprintf(address,<font color="#ff00ff">"</font><font color="#6a5acd">%s%d</font><font color="#ff00ff">"</font>,address,addr[byte]);
<font color="#a52a2a"><b>if</b></font> (byte<length-<font color="#ff00ff">1</font>) {
sprintf(address,<font color="#ff00ff">"</font><font color="#6a5acd">%s</font><font color="#ff00ff">."</font>,address);
}
}
<font color="#a52a2a"><b>return</b></font> address;
}
<font color="#2e8b57"><b>int</b></font> main(<font color="#2e8b57"><b>int</b></font> argc, <font color="#2e8b57"><b>const</b></font> <font color="#2e8b57"><b>char</b></font> **argv) {
<font color="#0000ff">// get the host information for "localhost"</font>
hostentry he;
he.initialize(<font color="#ff00ff">"localhost"</font>);
<font color="#0000ff">// print the components individually</font>
printf(<font color="#ff00ff">"Individually...</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>);
printf(<font color="#ff00ff">" Name: </font><font color="#6a5acd">%s</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>,he.getName());
printf(<font color="#ff00ff">" Alias list:</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>);
<font color="#a52a2a"><b>for</b></font> (<font color="#2e8b57"><b>int</b></font> i=<font color="#ff00ff">0</font>; he.getAliasList()[i]; i++) {
printf(<font color="#ff00ff">" </font><font color="#6a5acd">%s</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>,he.getAliasList()[i]);
}
printf(<font color="#ff00ff">" Address type: </font><font color="#6a5acd">%d</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>,he.getAddressType());
printf(<font color="#ff00ff">" Address length: </font><font color="#6a5acd">%d</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>,he.getAddressLength());
printf(<font color="#ff00ff">" Address list:</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>);
<font color="#a52a2a"><b>for</b></font> (<font color="#2e8b57"><b>int</b></font> i=<font color="#ff00ff">0</font>; he.getAddressList()[i]; i++) {
<font color="#2e8b57"><b>char</b></font> *addr=getAddressString(he.getAddressLength(),
he.getAddressList()[i]);
printf(<font color="#ff00ff">" </font><font color="#6a5acd">%s</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>,addr);
<font color="#a52a2a"><b>delete</b></font>[] addr;
}
printf(<font color="#ff00ff">"</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>);
<font color="#0000ff">// use the built in print method</font>
printf(<font color="#ff00ff">"Built In...</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>);
he.print();
printf(<font color="#ff00ff">"</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>);
<font color="#0000ff">// get the host information for "127.0.0.1"</font>
<font color="#2e8b57"><b>char</b></font> address[]={<font color="#ff00ff">127</font>,<font color="#ff00ff">0</font>,<font color="#ff00ff">0</font>,<font color="#ff00ff">1</font>};
he.initialize(address,<font color="#ff00ff">4</font>,AF_INET);
<font color="#0000ff">// print the components individually</font>
printf(<font color="#ff00ff">"Individually...</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>);
printf(<font color="#ff00ff">" Name: </font><font color="#6a5acd">%s</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>,he.getName());
printf(<font color="#ff00ff">" Alias list:</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>);
<font color="#a52a2a"><b>for</b></font> (<font color="#2e8b57"><b>int</b></font> i=<font color="#ff00ff">0</font>; he.getAliasList()[i]; i++) {
printf(<font color="#ff00ff">" </font><font color="#6a5acd">%s</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>,he.getAliasList()[i]);
}
printf(<font color="#ff00ff">" Address type: </font><font color="#6a5acd">%d</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>,he.getAddressType());
printf(<font color="#ff00ff">" Address length: </font><font color="#6a5acd">%d</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>,he.getAddressLength());
printf(<font color="#ff00ff">" Address list:</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>);
<font color="#a52a2a"><b>for</b></font> (<font color="#2e8b57"><b>int</b></font> i=<font color="#ff00ff">0</font>; he.getAddressList()[i]; i++) {
<font color="#2e8b57"><b>char</b></font> *addr=getAddressString(he.getAddressLength(),
he.getAddressList()[i]);
printf(<font color="#ff00ff">" </font><font color="#6a5acd">%s</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>,addr);
<font color="#a52a2a"><b>delete</b></font>[] addr;
}
printf(<font color="#ff00ff">"</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>);
<font color="#0000ff">// use the built in print method</font>
printf(<font color="#ff00ff">"Built In...</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>);
he.print();
printf(<font color="#ff00ff">"</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>);
}
</pre>
|