smalldns.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:4k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: smalldns.hpp,v $
  4.  * PRODUCTION Revision 1000.0  2003/10/29 15:32:12  gouriano
  5.  * PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.4
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef UTIL___SMALLDNS__HPP
  10. #define UTIL___SMALLDNS__HPP
  11. /*  $Id: smalldns.hpp,v 1000.0 2003/10/29 15:32:12 gouriano Exp $
  12.  * ===========================================================================
  13.  *
  14.  *                            PUBLIC DOMAIN NOTICE
  15.  *               National Center for Biotechnology Information
  16.  *
  17.  *  This software/database is a "United States Government Work" under the
  18.  *  terms of the United States Copyright Act.  It was written as part of
  19.  *  the author's official duties as a United States Government employee and
  20.  *  thus cannot be copyrighted.  This software/database is freely available
  21.  *  to the public for use. The National Library of Medicine and the U.S.
  22.  *  Government have not placed any restriction on its use or reproduction.
  23.  *
  24.  *  Although all reasonable efforts have been taken to ensure the accuracy
  25.  *  and reliability of the software and data, the NLM and the U.S.
  26.  *  Government do not and cannot warrant the performance or results that
  27.  *  may be obtained by using this software or data. The NLM and the U.S.
  28.  *  Government disclaim all warranties, express or implied, including
  29.  *  warranties of performance, merchantability or fitness for any particular
  30.  *  purpose.
  31.  *
  32.  *  Please cite the author in any work or product based on this material.
  33.  *
  34.  * ===========================================================================
  35.  *
  36.  * Author:  Anton Golikov
  37.  *
  38.  */
  39. /// @file smalldns.hpp
  40. /// Resolve host name to ip address and back using preset ini-file.
  41.  
  42. #include <corelib/ncbistd.hpp>
  43. #include <map>
  44. /** @addtogroup RegistryDNS
  45.  *
  46.  * @{
  47.  */
  48. BEGIN_NCBI_SCOPE
  49. /////////////////////////////////////////////////////////////////////////////
  50. ///
  51. /// CSmallDNS --
  52. ///
  53. /// Resolve host name to ip address and back using preset ini-file.
  54. class CSmallDNS
  55. {
  56. public:
  57.     /// Creates small DNS service from the registry-like file
  58.     /// named by "local_hosts_file" using section "[LOCAL_DNS]".
  59.     CSmallDNS(const string& local_hosts_file = "./hosts.ini");
  60.     
  61.     ~CSmallDNS();
  62.     
  63.     /// Validate if "ip" contains a legal IP address in a dot notation
  64.     /// (a la "255.255.255.255").
  65.     static bool IsValidIP(const string& ip);
  66.     /// Get local (current) host name (uname call).
  67.     static string GetLocalHost(void);
  68.     
  69.     /// Get local (current) host ip address from registry.
  70.     string GetLocalIP(void) const;
  71.     
  72.     /// Given host name "hostname", return its IP address in dot notation.
  73.     /// If the "hostname" is not in the dot notation, then look it up in
  74.     /// the registry. Return empty string if "hostname" cannot be resolved.
  75.     string LocalResolveDNS(const string& hostname) const;
  76.     /// Given ip address in dot notation, return host name by look up in
  77.     /// the registry. Return empty string if "ip" cannot be resolved to hostname.
  78.     string LocalBackResolveDNS(const string& ip) const;
  79. protected:
  80.     static string sm_localHostName;
  81.     map<string, string> m_map;
  82. };
  83. /* @} */
  84. END_NCBI_SCOPE
  85. /*
  86.  * ===========================================================================
  87.  * $Log: smalldns.hpp,v $
  88.  * Revision 1000.0  2003/10/29 15:32:12  gouriano
  89.  * PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.4
  90.  *
  91.  * Revision 1.4  2003/10/20 21:14:58  ivanov
  92.  * Formal code rearrangement. Added standart footer.
  93.  *
  94.  * ===========================================================================
  95.  */
  96. #endif  /* UTIL___SMALLDNS__HPP */