Добрый день. Имею локальный IP "192.168.1.5", хочу его получить. Пишу следующий код: #include <stdio.h> #include <errno.h> #include <string.h> #include <pthread.h> #include <unistd.h> #include <netdb.h> #include <netinet/in.h> #include <sys/stat.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <fcntl.h> int main(int argc, char **argv) { int sd; struct sockaddr_in server; struct hostent *hp; char hostname[256]; char hostip[16]; sd = socket(AF_INET,SOCK_DGRAM,0); server.sin_family = AF_INET; gethostname(hostname, sizeof(hostname)); hp = gethostbyname("elzhov"); bcopy(hp->h_addr_list[0], &(server.sin_addr.s_addr), hp->h_length); inet_ntop(AF_INET, &server, hostip, sizeof(hostip)); printf("%s\n", hostip); return 0; } Выдает "2.0.0.0". Если задаю имя не своего компьютера, а, например, www.msu.ru - получаю то же самое. Если задаю имя, которое не резолвится - падает с SegFault. Как мне получить на вывод "192.168.1.5"? Спасибо!
Ответ на:
комментарий
от murla
Ответ на:
комментарий
от hyde
Ответ на:
комментарий
от hyde
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум В чем ошибка чтения? (2020)
- Форум Помогите разобратся. Прога сокеты+http (2009)
- Форум где у меня руки кривые? (2001)
- Форум Странные баги в маленьком примере на C (2006)
- Форум inet_ntop после getaddrinfo ловит segfault (2012)
- Форум Cокеты и Cи (2005)
- Форум BROADCAST sendto вызывает Permission denied (2004)
- Форум C++, OpenSSL. Как соединиться с сервером через прокси? (2015)
- Форум Проблема с connect (2006)
- Форум Клиент-сервер (консольный чат) на сокетах (2017)