How can I learn my own ip address? By gethostname? Can anybody send me an example code?
bera
If all you need is to be able to connect to yourself, you should use the loopback address (127.0.0.1) to do it. If all you want is to open a socket for listening, you'd use INADDR_ANY or INADDR_LOOPBACK rather than needing the address.
If you really need the ip address, here's an example:
#include <stdio.h>
#define WIN32_LEAN_AND_MEAN
#include <winsock.h>
int main(void){
char hname[512];
WSADATA wsaData;
struct hostent *he;
int i = 0;
if (WSAStartup(MAKEWORD(1,1),&wsaData) != 0) {
printf("Error on WSAStartup()\n");
return -1;
}
if (gethostname(hname,sizeof(hname)) == SOCKET_ERROR) {
printf("Error on gethostname()\n");
return -1;
}
he = gethostbyname(hname);
if (he == 0) {
printf("Error on gethostbyname()\n");
return -1;
}
while (he->h_addr_list[i] != 0) {
struct in_addr ia;
memcpy(&ia,he->h_addr_list[i],sizeof(struct in_addr));
printf("Local address found: %s\n",inet_ntoa(ia));
i++;
}
WSACleanup();
return 0;
}
Ako[/code]