Jpp  18.2.1-ARCA-DF-PATCH
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Enumerations | Functions
getIPaddress.cc File Reference

Example program to print IP address. More...

#include <string>
#include <vector>
#include <iostream>
#include <iomanip>
#include "JSystem/JNetwork.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Enumerations

enum  Option_t
 

Functions

int main (int argc, char *argv[])
 

Detailed Description

Example program to print IP address.

Author
mdejong

Definition in file getIPaddress.cc.

Enumeration Type Documentation

enum Option_t

Definition at line 12 of file getIPaddress.cc.

12  {
13  IP_address = 1,
14  IP_subhex,
15  IP_subdec,
16  Hostname
17  };

Function Documentation

int main ( int  argc,
char *  argv[] 
)

Definition at line 27 of file getIPaddress.cc.

28 {
29  using namespace std;
30  using namespace JPP;
31 
32  string host_name;
33  int option;
34 
35  try {
36 
37  JParser<> zap("Example program to print IP address.");
38 
39  zap['H'] = make_field(host_name) = "localhost";
40  zap['O'] = make_field(option, "option "
41  << IP_address << " -> IP address; "
42  << IP_subhex << " -> IP sub-address (hex); "
43  << IP_subdec << " -> IP sub-address (dec); "
44  << Hostname << " -> host name") = IP_address, IP_subhex, IP_subdec, Hostname;
45 
46  zap(argc, argv);
47  }
48  catch(const exception &error) {
49  FATAL(error.what() << endl);
50  }
51 
52  int ip = getIPnumber(host_name);
53 
54  switch (option) {
55 
56  case IP_address:
57  cout << getIPaddress(ip) << endl; return 0;
58 
59  case IP_subhex:
60  cout << hex << getSubaddress(ip) << endl; return 0;
61 
62  case IP_subdec:
63  cout << dec << getSubaddress(ip) << endl; return 0;
64 
65  case Hostname:
66  cout << dec << getHostname(ip) << endl; return 0;
67 
68  default:
69  FATAL("Invalid option " << option << endl);
70  }
71 }
int getIPnumber(const std::string &host_name)
Get IP number.
Definition: JNetwork.hh:117
Utility class to parse command line options.
Definition: JParser.hh:1514
std::string getIPaddress(const int ip)
Get IP address (decimal-dot notation).
Definition: JNetwork.hh:154
unsigned short getSubaddress(const int ip)
Get host identifier within network.
Definition: JNetwork.hh:190
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:1989
std::string getHostname()
Get host name.
Definition: JNetwork.hh:77
#define FATAL(A)
Definition: JMessage.hh:67