1addrinfo(3)           User Contributed Perl Documentation          addrinfo(3)
2
3
4

NAME

6       Net::addrinfo - interface to POSIX getaddrinfo(3) and related
7       constants, structures and functions.
8

SYNOPSIS

10        use Net::addrinfo;
11        my $ainfo = getaddrinfo("www.marzot.net");
12

DESCRIPTION

14       This Perl module is designed to implement and export functionality
15       related to the POSIX getaddrinfo(3) system call. The Net::addrinfo data
16       object is provided with field name accsessor functions, similarly named
17       to the the C data structure definition in netdb.h. The getaddrinfo(3),
18       gai_strerror(3) calls, and related constants are exported.
19
20       The getaddrinfo() routine mimics the POSIX documented funtion (see
21       system man page getaddrinfo(3)).
22
23       On success the getaddrinfo() will return an array of Net::addrinfo data
24       objects.
25
26       In scalar context getaddrinfo() will return the first element from the
27       Net::addrinfo array.
28
29       In case of error, a numeric error code is returned.
30
31       The error code may be passed to gai_strerror() to get a string
32       representation of the error.
33
34       New Net::addrinfo objects may be created with the package constructor
35       and any number (or none) of the fields may be specified.
36
37          flags => scalar integer
38          family => scalar integer (e.g., AF_INET,m AF_INET6, etc.)
39          socktype => scalar integer (e.g., SOCK_DGRAM, SOCK_STREAM, etc.)
40          protocol => scalar integer (e.g., IPPROTO_UDP, IPPROTO_TCP, etc.)
41          addrlen => scalar integer (can be computed by length($self->addr))
42          addr => packed bytes (e.g., $self->addr(inet_aton("192.168.1.1")); )
43
44       Flags may be set in the structure so that it may be used as a 'hint'
45       parameter to the getaddrinfo() function. See exported @AI_FLAGS for
46       list of acceptable constants.
47
48       (Note: a special scalar integer field, 'val_status', is provided in
49       support of DNSSEC aware addrinfo results (see
50       Net::DNS::SEC::Validator))
51

EXAMPLES

53        use Net::addrinfo;
54        use Socket qw(:all);
55
56        my $hint = new Net::addrinfo(flags => AI_CANONNAME,
57                                     family => AF_INET,
58                                     socktype => SOCK_DGRAM);
59
60        my (@ainfo) = getaddrinfo("www.marzot.net", "http", $hint);
61
62        foreach $ainfo (@ainfo) {
63           if (ref $ainfo eq 'Net::addrinfo') {
64              print $ainfo->stringify(), "\n";
65              print "addr = ", inet_ntoa($ainfo->addr), "\n";
66              ...
67              connect(SH, $ainfo->addr);
68            } else {
69               print "Error($ainfo):", gai_strerror($ainfo), "\n";
70            }
71        }
72

NOTE

74       One should not rely on the internal representation of this class.
75

AUTHOR

77       G. S. Marzot (marz@users.sourceforge.net)
78
80          Copyright (c) 2006 G. S. Marzot. All rights reserved.  This program
81          is free software; you can redistribute it and/or modify it under
82          the same terms as Perl itself.
83
84          Copyright (c) 2006-2008 SPARTA, Inc.  All Rights Reserved.  This program
85          is free software; you can redistribute it and/or modify it under
86          the same terms as Perl itself.
87
88
89
90perl v5.36.0                      2022-07-21                       addrinfo(3)
Impressum