# FBB::Hostname(3bobcat)

## Host Info
(libbobcat-dev_6.07.01)

## 2005-2025

## NAME

FBB::Hostname - Contains name/address info about a host

## SYNOPSIS

#include <bobcat/hostname>
Linking option: -lbobcat

## DESCRIPTION

FBB::Hostname objects inherit from Hostent, and offers information about a host, like Hostent. Apart from being initialized by a hostname or host address, they can also be initialized by a FBB::InetAddress object. Most of the functionality of an FBB::Hostname object is available through its parent-class FBB::Hostent.

## NAMESPACE

FBB
All constructors, members, operators and manipulators, mentioned in this man-page, are defined in the namespace FBB.

## INHERITS FROM

FBB::Hostent

## CONSTRUCTORS

- Hostname():
  The default constructor initializes an empty FBB::Hostname object.
- Hostname((std::string const &host)):
  This constructor initializes an FBB::Hostname object from a string representing the name or dotted decimal address of a host. An FBB::Exception object is thrown if the hostname information could not be retrieved.
- Hostname(InetAddress const &inetAddress):
  This constructor initializes an FBB::Hostname object from an InetAddress object. An FBB::Exception object is thrown if the hostname information could not be retrieved.

Copy and move constructors (and assignment operators) are available.

## MEMBER FUNCTIONS

All members of FBB::Hostent are available, as FBB::Hostname inherits from this class. There are no additional members.

## EXAMPLE

    #include <iostream>

    #include <bobcat/hostname>
    #include <bobcat/exception>

    using namespace std;
    using namespace FBB;

    int main(int argc, char **argv)
    {
        while (true)
        {
            cout << "Enter name or address:\n";

            string str;

            if (!getline(cin, str))
                return 0;

            if (str == "")
                break;

            try
            {
                Hostname h(str);

                cout << "Official name:\n";
                    cout << h.hostname() << endl;

                cout << "Aliases:\n";
                for (size_t idx = 0; idx < h.nAliases(); idx++)
                    cout << h.alias(idx) << " ";
                cout << endl;

                cout << "Adresses:\n";
                for (size_t idx = 0; idx < h.nAddresses(); idx++)
                    cout << h.dottedDecimalAddress(idx) << " ";
                cout << endl;
            }
            catch (exception const &err)
            {
                cout << err.what() << endl;
            }
        }
    }

## FILES

bobcat/hostname - defines the class interface

## SEE ALSO

bobcat(7), hostent(3bobcat)

## BUGS

None Reported.

## BOBCAT PROJECT FILES

- https://fbb-git.gitlab.io/bobcat/: gitlab project page;

Debian Bobcat project files:

- libbobcat6: debian package containing the shared library, changelog and copyright note;
- libbobcat-dev: debian package containing the static library, headers, manual pages, and developer info;

## BOBCAT

Bobcat is an acronym of `Brokken's Own Base Classes And Templates'.

## COPYRIGHT

This is free software, distributed under the terms of the GNU General Public License (GPL).

## AUTHOR

Frank B. Brokken (f.b.brokken@rug.nl).