can't get multi-homed host address using getaddrinfo() Options - Networking

This is a discussion on can't get multi-homed host address using getaddrinfo() Options - Networking ; I'm using getaddrinfo("test.domain.com", NULL, &hint, &info) to get IP addresses. Below is /etc/hosts: .... 10.200.28.120 test.domain.com 172.0.20.120 test.domain.com .... The problem is getaddrinfo always return only one IP address 10.200.28.120. From the man page, I think I should get a ...

+ Reply to Thread
Results 1 to 3 of 3

Thread: can't get multi-homed host address using getaddrinfo() Options

  1. can't get multi-homed host address using getaddrinfo() Options

    I'm using getaddrinfo("test.domain.com", NULL, &hint, &info) to
    get IP addresses.

    Below is /etc/hosts:
    ....
    10.200.28.120 test.domain.com
    172.0.20.120 test.domain.com
    ....

    The problem is getaddrinfo always return only one IP address
    10.200.28.120. From the man page, I think I should get a address
    linked list
    that mean I can get both.

    Please see my demo code below:
    int main()
    {
    struct addrinfo hints;
    struct addrinfo *info;
    int s;
    memset((char*) &hints, '\0', sizeof(hints));
    hints.ai_family = AF_INET; // just IPv4 for now
    hints.ai_socktype = SOCK_STREAM; // just TCP
    s = getaddrinfo("test.domain.com", NULL, &hints, &info);
    if (s != 0) { printf ("error\n"); }
    printf ("ok\n");
    return 0;
    }

    I have checked info->ai_next with gdb, it's always NULL. Is there
    anything wrong in my demo code? My platform it RHEL 4.0.

    BTW: This demo code can get the right result on Solaris.

    Thanks

    Arthur


  2. Re: can't get multi-homed host address using getaddrinfo() Options

    Arthur wrote:

    > I'm using getaddrinfo("test.domain.com", NULL, &hint, &info) to
    > get IP addresses.
    >
    > Below is /etc/hosts:
    > ...
    > 10.200.28.120 test.domain.com
    > 172.0.20.120 test.domain.com
    > ...
    >
    > The problem is getaddrinfo always return only one IP address
    > 10.200.28.120. From the man page, I think I should get a address
    > linked list
    > that mean I can get both.
    >
    > Please see my demo code below:
    > int main()
    > {
    > struct addrinfo hints;
    > struct addrinfo *info;
    > int s;
    > memset((char*) &hints, '\0', sizeof(hints));
    > hints.ai_family = AF_INET; // just IPv4 for now
    > hints.ai_socktype = SOCK_STREAM; // just TCP
    > s = getaddrinfo("test.domain.com", NULL, &hints, &info);
    > if (s != 0) { printf ("error\n"); }
    > printf ("ok\n");
    > return 0;
    > }
    >
    > I have checked info->ai_next with gdb, it's always NULL. Is there
    > anything wrong in my demo code? My platform it RHEL 4.0.
    >
    > BTW: This demo code can get the right result on Solaris.
    >
    > Thanks
    >
    > Arthur


    Can one domain have two addresses? I think that the multiple addresses that
    ISPs use all have slightly different domain names (for example,
    hotkey.net.au is boomer.hotkey.net.au. Another IP is frog. Something else
    is duckula.) and are linked to one another. But I don't really know.

    Doug.
    --
    Orthodoxy is my doxy; heterodoxy is your doxy.
    - Wm Warburton, 18th c. Bishop of Gloucester.


  3. Re: can't get multi-homed host address using getaddrinfo() Options



    Doug Laidlaw wrote:
    > Arthur wrote:
    >
    >> I'm using getaddrinfo("test.domain.com", NULL, &hint, &info) to
    >> get IP addresses.
    >>
    >> Below is /etc/hosts:
    >> ...
    >> 10.200.28.120 test.domain.com
    >> 172.0.20.120 test.domain.com
    >> ...
    >>
    >> The problem is getaddrinfo always return only one IP address
    >> 10.200.28.120. From the man page, I think I should get a address
    >> linked list
    >> that mean I can get both.
    >>
    >> Please see my demo code below:
    >> int main()
    >> {
    >> struct addrinfo hints;
    >> struct addrinfo *info;
    >> int s;
    >> memset((char*) &hints, '\0', sizeof(hints));
    >> hints.ai_family = AF_INET; // just IPv4 for now
    >> hints.ai_socktype = SOCK_STREAM; // just TCP
    >> s = getaddrinfo("test.domain.com", NULL, &hints, &info);
    >> if (s != 0) { printf ("error\n"); }
    >> printf ("ok\n");
    >> return 0;
    >> }
    >>
    >> I have checked info->ai_next with gdb, it's always NULL. Is there
    >> anything wrong in my demo code? My platform it RHEL 4.0.
    >>
    >> BTW: This demo code can get the right result on Solaris.
    >>
    >> Thanks
    >>
    >> Arthur

    >
    > Can one domain have two addresses?

    yes

    host www.google.com
    www.google.com is an alias for www.l.google.com.
    www.l.google.com has address 209.85.129.147
    www.l.google.com has address 209.85.129.99
    www.l.google.com has address 209.85.129.104
    www.google.com is an alias for www.l.google.com.


    > I think that the multiple addresses that
    > ISPs use all have slightly different domain names (for example,
    > hotkey.net.au is boomer.hotkey.net.au. Another IP is frog. Something else
    > is duckula.) and are linked to one another. But I don't really know.
    >
    > Doug.


+ Reply to Thread