crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Получение ip адресов комрьютеров в сети, автоматически получить адреса и соединиться
Гость_Гость_*
сообщение 9.11.2010, 10:11
Сообщение #1





Гости








    


Доброго времени суток! Подскажите,пожалуйста, как получить список всех IP адресов в сети? И возможно обмениваться с ними данными через один и тот же порт? Т.е. порт я не выбираю,пишу всегда 0,чтобы он брал свободный. Или я что-то не так понимаю?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 9.11.2010, 10:49
Сообщение #2





Гости








    


Имеется сеть из 3-х компьютеров,(через wifi роутер). Хотел написать программу,которая является одновременно и клиентом и сервером,соединяется по сети со всеми остальными компьютерами и ожидает данных. Решил для этого воспользоваться QtcpSocket и QtcpServer. Но возникла проблема: как получить IP-адреса всех 3-х компьютеров? Может есть какая-нибудь хитрая функция? Дальше хотел,отсылать ответ подключившемуся IP, через любой свободный порт. Если не сложно приведите пример реализации,буду очень благодарен. А то самому никак не разобраться...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 9.11.2010, 11:24
Сообщение #3


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


смотри сколько примеров.
Раскрывающийся текст

ls /usr/share/qt4/examples/network/ -1
blockingfortuneclient
broadcastreceiver
broadcastsender
download
downloadmanager
fortuneclient
fortuneserver
googlesuggest
http
loopback
network-chat
network.pro
qftp
README
securesocketclient
threadedfortuneserver
torrent

что из этого смотрел?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 9.11.2010, 11:36
Сообщение #4





Гости








    


при написании я ориентировался на пример fortuneserver. Но всё дело в том что он мне выдаёт только мой IP. Всех остальных IP я не получаю!

Раскрывающийся текст
QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses();
        // use the first non-localhost IPv4 address
        for (int i = 0; i < ipAddressesList.size(); ++i) {
            if (ipAddressesList.at(i) != QHostAddress::LocalHost &&
                ipAddressesList.at(i).toIPv4Address()) {
                ipAddress = ipAddressesList.at(i).toString();
                break;
            }
        }
        // if we did not find one, use IPv4 localhost
    if (ipAddress.isEmpty())
        {
            ipAddress = QHostAddress(QHostAddress::LocalHost).toString();
        }
        ui->label_7->setText("The server is running on");
        ui->label_9->setText(tr("%2")
                            .arg(tcpServer->serverPort()));
        ui->label_2->setText(ipAddress);


В итоге имею только свой IP. Что я не так пишу?
Причина редактирования: пользуйся тегами
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 9.11.2010, 11:40
Сообщение #5





Гости








    


Может из-за роутера я не могу соединиться с клиентом?
P.S. До этого через FTP писал,всё соединялось и всё работало(правда задачи получения всех IP я там не ставил)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 9.11.2010, 11:43
Сообщение #6


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(Гость @ 9.11.2010, 10:49) *
как получить IP-адреса всех 3-х компьютеров? Может есть какая-нибудь хитрая функция?
Нет такой функции. (я по крайней мере о такой не слышал). Вижу только такой вариант. Получать ip и маску сети своего компа, а дальше в цикле выяснять какие компы еще находятся в той же сети, пробегая по ip адресам и пытаясь произвести подключение
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 9.11.2010, 11:56
Сообщение #7





Гости








    


Цитата(igor_bogomolov @ 9.11.2010, 11:43) *
Цитата(Гость @ 9.11.2010, 10:49) *
как получить IP-адреса всех 3-х компьютеров? Может есть какая-нибудь хитрая функция?
Нет такой функции. (я по крайней мере о такой не слышал). Вижу только такой вариант. Получать ip и маску сети своего компа, а дальше в цикле выяснять какие компы еще находятся в той же сети, пробегая по ip адресам и пытаясь произвести подключение


буду пробовать, спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 9.11.2010, 11:57
Сообщение #8


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


в сетях и их безопасности не специалист, может широковещательный запрос поможет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 9.11.2010, 13:03
Сообщение #9





Гости








    


А что это за запрос такой? С помощью чего его реализовать можно?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 9.11.2010, 13:35
Сообщение #10


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


ты еще не понял что самому прочитать быстрее чем выпытывать по одному предложению. broadcast это. почитай о сетях вообще. в qt примеры с ним есть. подумай чем он тебе поможет. выложи код потом сюда а народ подскажет и поможет.

П.С.
лучше день потерять, потом за 5 минут долететь)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 12.12.2024, 12:39