crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> QHttp и несколько IP в системе
rusgl
  опции профиля:
сообщение 3.11.2008, 18:40
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 3.11.2008
Пользователь №: 408

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




Репутация:   0  


Доброго времени, All.

Может кто сталкивался с ситуацией, когда в системе на одном сетевом интерфейсе настроенно несколько IP адресов, и программа в зависимости от некоторых обстоятельств должна посылать HTTP запросы с разных IP.

Пользую QHttp, качается все нормально. Но только через 1-й IP из списка настроенных, что, в принципе правильно. Но вот как явно указать, через какой IP нужно идти в нет, не нашел.

Чувствую, что копать нужно в сторону QIODevice.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.11.2008, 18:59
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9634
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(rusgl @ 3.11.2008, 21:40) *
на одном сетевом интерфейсе настроенно несколько IP адресов
интересно как такого добится :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rusgl
  опции профиля:
сообщение 3.11.2008, 19:03
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 3.11.2008
Пользователь №: 408

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




Репутация:   0  


ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0"
ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255"
ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255"
ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240"
ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255"
...
http://www.freebsd.org/doc/en_US.ISO8859-1...tual-hosts.html
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.11.2008, 19:10
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9634
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


rusgl, пардон, я думал ты на виндовозе так изгаляешся, хоть на нем тоже такое возможно, только головников потом не оберешся.

rusgl, см. класс QNetworkInterface
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rusgl
  опции профиля:
сообщение 3.11.2008, 19:13
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 3.11.2008
Пользователь №: 408

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 3.11.2008, 20:10) *
QNetworkInterface


С помощью QNetworkInterface у меня получилось все это дело вытащить, а вот как заюзать какой-то конкретный IP при использовании QHttp пока не понятно :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.11.2008, 19:24
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9634
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


что-то я в некоторой растеренности, есть методы:
QIODevice * QHttp::currentSourceDevice () const
QIODevice * QHttp::currentDestinationDevice () const
но нет методов для установки устройств, а псевдонимы типа: ifconfig_fxp0_alias1, для Qt такие же устройства. :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 3.11.2008, 21:25
Сообщение #7


Мастер
******

Группа: Модератор
Сообщений: 3278
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Тебе, для этого нужно сначала создать сокет на нужном тебе сетевом ip, как на qt это делается я пока не знаю, но постараюсь выяснить (если выяснишь раньше чем я, то скажи как делается :)).
После чего установить его в http: int QHttp::setSocket ( QTcpSocket * socket )

p.s. осталось только найти аналог bind для tcp сокетов в Qt. bind ведь можно вызывать не только для серверной части, но и для клиентской. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Novak
  опции профиля:
сообщение 3.11.2008, 21:55
Сообщение #8


Активный участник
***

Группа: Участник
Сообщений: 319
Регистрация: 15.3.2008
Из: Замкадыш
Пользователь №: 121

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




Репутация:   6  


setLocalAddress для абстрактного сокета, от которого и TCP наследует, не спасёт отца русской демократии?

Сообщение отредактировал Novak - 3.11.2008, 21:55
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.11.2008, 22:54
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9634
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Novak, я тоже такой вариант предположил, но не понятно после этого адрес сменится навсегда или только применительно к этой программе.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Novak
  опции профиля:
сообщение 4.11.2008, 19:26
Сообщение #10


Активный участник
***

Группа: Участник
Сообщений: 319
Регистрация: 15.3.2008
Из: Замкадыш
Пользователь №: 121

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




Репутация:   6  


С помощью этой функции - для конкретного сокета. Соответственно, получив информацию о всех доступных адресах, можно выбрать нужный и на нём повесить сокет.

Сообщение отредактировал Novak - 4.11.2008, 19:28
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




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