/* ------------------------------------------------------------------------
 
 
   PHPresolver - PHP DNS resolver library
 
                 Version 1.1b
 
 
   Copyright (c) 2001, 2002 Moriyoshi Koizumi <[email protected]>
 
   All Rights Reserved.
 
 
   This library is free software; you can redistribute it and/or modify it
 
   under the terms of the GNU Lesser General Public License as published
 
   by the Free Software Foundation; either version 2.1 of the License, or any
 
   later version.
 
 
   This library is distributed in the hope that it will be useful, but
 
   WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 
   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
 
   License for more details.
 
 
   You should have received a copy of the GNU Lesser General Public License
 
   along with this library; if not,
 
   write to the Free Software Foundation, Inc.,
 
   59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
 
 
  ------------------------------------------------------------------------
 
  $Header: /cvsroot/phpresolver/PHPResolver-1.0/fetchdns/fetchdns.c,v 1.2 2002/08/14 14:50:29 amghura Exp $
 
*/
 
 
#include <stdio.h>
 
#include <stdlib.h>
 
#include <windows.h>
 
#include <iphlpapi.h>
 
 
#ifdef __BORLANDC__
 
#pragma argsused 
 
#endif
 
 
int main( int argc, char **argv )
 
{
 
    FIXED_INFO *pfi = NULL, *pnewfi;
 
    ULONG pfisize = sizeof(pfi);
 
    DWORD result;
 
    IP_ADDR_STRING *ipaddr;
 
    int retval = 0;
 
 
    do {
 
        if( ( pnewfi = realloc( pfi, pfisize ) ) == NULL ) {
 
            retval = -1;
 
            goto out;
 
        }
 
        pfi = pnewfi;
 
 
        result = GetNetworkParams( pfi, &pfisize );
 
    } while( result == ERROR_BUFFER_OVERFLOW );
 
 
    if( result != ERROR_SUCCESS ) {
 
        retval = 1;
 
        goto out;
 
    }
 
 
    printf( "DNS Servers: %s\n", pfi->DnsServerList.IpAddress.String );
 
 
    ipaddr = pfi->DnsServerList.Next;
 
 
    while( ipaddr ) {
 
        printf( "             %s\n", ipaddr->IpAddress.String );
 
        ipaddr = ipaddr->Next;
 
    }
 
out:
 
    if( pfi ) free( pfi ); 
 
    return retval;
 
}
 
 
 |