Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие _ Получение текущего IP

Автор: OrSOn 18.3.2010, 11:42

Всем привет! Вопрос, собственно, не совсем по Qt, а вообще на c++, но возможно и с Qt... Необходимо в проекте получить текущий IP адрес, как это можно сделать? Причем необходимо сделать это как для Win, так и для Unix, поэтому нужны функции получения IP для обеих систем. Заранее благодарен.

Автор: OrSOn 18.3.2010, 13:03

Для винды нашел следующий код:

#include <winsock.h>
#include <stdio.h>

void __fastcall TForm1::Button1Click(TObject *Sender)
{
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD(1, 0);
int err = WSAStartup(wVersionRequested, &wsaData);
if(err == 0)
{
char hn[1024];
struct hostent *adr;
if(gethostname((char *)&hn, 1024))
{
int err = WSAGetLastError();
Beep();
};
adr = gethostbyname(hn);
if(adr)
{
  char *LocalIp = new char[15];
  sprintf(LocalIp,"%d.%d.%d.%d",
  (unsigned char)adr->h_addr_list[0][0],
  (unsigned char)adr->h_addr_list[0][1],
  (unsigned char)adr->h_addr_list[0][2],
  (unsigned char)adr->h_addr_list[0][3]);
  Label1->Caption=LocalIp; //Выводим IP адрес
}
}
}


А вот для линукса чет пока никак...

Автор: Litkevich Yuriy 18.3.2010, 13:06

QHostAddress QNetworkAddressEntry::ip () const
?

Автор: OrSOn 18.3.2010, 13:18

Цитата(Litkevich Yuriy @ 18.3.2010, 13:06) *
QHostAddress QNetworkAddressEntry::ip () const
?

Спасибо) не зря сюда писал, не нашел я сию функцию)))))

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)