Добрый день. Имею локальный 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)
- Форум C++, OpenSSL. Как соединиться с сервером через прокси? (2015)
- Форум BROADCAST sendto вызывает Permission denied (2004)
- Форум Проблема с connect (2006)
- Форум Клиент-сервер (консольный чат) на сокетах (2017)