Jpp test-rotations-new
the software that should make you happy
Loading...
Searching...
No Matches
getIPaddress.cc
Go to the documentation of this file.
1#include <string>
2#include <vector>
3#include <iostream>
4#include <iomanip>
5
6#include "JSystem/JNetwork.hh"
7#include "Jeep/JParser.hh"
8#include "Jeep/JMessage.hh"
9
10namespace {
11
12 enum Option_t {
13 IP_address = 1,
14 IP_subhex,
15 IP_subdec,
16 Hostname
17 };
18}
19
20
21/**
22 * \file
23 *
24 * Example program to print IP address.
25 * \author mdejong
26 */
27int main(int argc, char* argv[])
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}
General purpose messaging.
#define FATAL(A)
Definition JMessage.hh:67
Hostname and IP address functions.
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
Utility class to parse command line options.
Definition JParser.hh:1698
int main(int argc, char *argv[])
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).