Всем привет! Как это можно сделать? Я могу только получить ip, заданный для локальной сети... А как получить свой реальный интернетный ip?
Спасибо!
QNetworkInterface::allAddresses();
неа, возвращает внутренний локальный - 192.168.0.2 (ну и loopback)... а нужно получить динамический адрес, который присваивается провайдером, при выходе в инет ((
а как подключение то организовано?
есть мой комп, он подключен через комуникатор к роутеру который в свою очередь смотрит на свич провайдера, т.е. в интеренет по сути... Т.е. грубо говоря есть роутер, который скрывает небольшую локальную сеть...
Я пока только тестами занимаюсь.. Просто хочу в программу (по работе) встроить модуль, который бы слал мне на почту ip-адрес машины, с которой запущен... Нужно не для хака, а чтобы удаленно просматривать логи программы...
Rocky, нужно что бы кто то из вне сказал какой IP. Типа сделать запрос на какой сайт, он и скажет какой у вас IP. Пример сайта - 2ip.ru.
ахха, спасибо как раз на нем сейчас сижу )))
Вообще думаю средствами QT никак не узнать... да и QT тут вообще не причем... Осталось разобраться можно ли с сайтом типа 2ip общаться как бы в командной строке, т.е. чтобы пользователь ничего не видел... пойду искать куда сунул книгу по php, может там что нарою...
О! Я уже сделал чтобы программа посылала письмо на ящик... щас посмотрел шапку письма, и там содержится тот самый адрес, с которого это письмо было отпралено:
Хм.... что не так делаю, не получается ((
{
...
m_pHttp = new QHttp();
QDialog::connect(m_pHttp, SIGNAL(done(bool)), this, SLOT(OnReadyRead()));
m_pHttp->setHost("www.grio.ru");
m_pHttp->get(QUrl::toPercentEncoding("/myip.php"));
...
}
void CDifferentSettingsDialog::OnReadyRead()
{
QMessageBox::information(this, m_pMessage->GetMessage(eHeader), m_pHttp->readAll());
}
гыыы
Есть. Надо так:
m_pHttp->get("/myip.php");
Посмотрю, спасибо. Щас попробую еще таким же образом с 2ip.ru вытянуть инфу... Интересно
Вобщем, если кому нужно будет:
CDifferentSettingsDialog::CDifferentSettingsDialog(...)
{
...
m_pHttp = new QHttp();
QDialog::connect(m_pHttp, SIGNAL(done(bool)), this, SLOT(OnReadyRead()));
m_pHttp->setHost("2ip.ru");
m_pHttp->get("/index.php");
...
}
void CDifferentSettingsDialog::OnReadyRead()
{
m_sCurrentDynIP = "";
const QString sText = m_pHttp->readAll();
const QRegExp oRegExp("((1{0,1}[0-9]{0,2}|2[0-4]{1,1}[0-9]{1,1}|25[0-5]{1,1})\\.){3,3}(1{0,1}[0-9]{0,2}|2[0-4]{1,1}[0-9]{1,1}|25[0-5]{1,1})");
const int n = sText.indexOf(oRegExp);
if (n == -1) return;
m_sCurrentDynIP = sText.mid(n, 15); //255.255.255.255
const int nLength = m_sCurrentDynIP.length();
for (int i = 0; i < nLength; ++i)
{
const QChar sSymbol = m_sCurrentDynIP.at(i);
if (sSymbol.isDigit() || sSymbol == '.') continue;
m_sCurrentDynIP.replace(i, 1, " ");
}
m_sCurrentDynIP = m_sCurrentDynIP.trimmed();
}
m_sCurrentDynIP что за переменная?
Как мне ее передать в Label?
bigory, строка, скорее всего (QString)
Rocky,
мне вот этот кусок не понятен ((
m_sCurrentDynIP = sText.mid(n, 15); //255.255.255.255
const int nLength = m_sCurrentDynIP.length();
for (int i = 0; i < nLength; ++i)
{
const QChar sSymbol = m_sCurrentDynIP.at(i);
if (sSymbol.isDigit() || sSymbol == '.') continue;
m_sCurrentDynIP.replace(i, 1, " ");
}
m_sCurrentDynIP = m_sCurrentDynIP.trimmed();
m_sCurrentDynIP = sText.mid(n, 15); //255.255.255.255
const int nLength = m_sCurrentDynIP.length();
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)