logo       

Re: How do I find my own IP address?: msg#00227

lang.erlang.general

Subject: Re: How do I find my own IP address?

Joe Armstrong wrote:
I need to know my own IP address

I can find my hostname

1> inet:gethostname().
{ok,"enfield"}

And do this

2> inet:gethostbyname("enfield").
{ok,{hostent,"localhost.localdomain",
["localhost","enfield"],
inet,
4,
[{127,0,0,1}]}}

But 127.0.0.1 is not my IP address

if you are interested i have written a c program to do some of the things above (this is what i suppose the inet module is/does).
if you run it, what kind of information does it print?


bengt

#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>






main(int argc, const char* argv[])
{
char name[80];
struct hostent *hp;
char **p;

if (0 != gethostname(name, sizeof (name))) {
(void) printf("gethostname failed\n");
exit (1);
}

hp = gethostbyname(name);
if (hp == NULL) {
(void) printf("host information for %s not found\n", name);
exit (3);
}

for (p = hp->h_addr_list; *p != 0; p++) {
struct in_addr in;
char **q;

(void) memcpy(&in.s_addr, *p, sizeof (in.s_addr));
(void)printf("%s\t%s", inet_ntoa(in), hp->h_name);

for (q = hp->h_aliases; *q != 0; q++) {
(void) printf(" %s", *q);
}

(void) putchar('\n');
}

exit (0);
}



<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise