![]() |
|
Модераторы: feodorv |
![]()
|
|
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
Мне нужно получить свой ip. Делаю вот так
под виндой все гуд. Под линем выдает мне 127.0.0.2. Хотя интерфейса с таким ip там вообще нет. Вариант с тем что бы перебирать все h_addr_list[i] неканает т.к. откуда мне знать какой из них выбрать. Я в общем юзаю boost::asio и делаю мультикастовую рассылку. Это все обернуто сверху еще одним классом, но до boost::asio::ip::udp::socket я добраться могу. Мне вот нужно именно ip вот этого самого сокета получить, т.е. с которого непосредственно идет рассылка. Но в документации да и методом тыка я так и не смог вытащить от тудова эти данные. Есть еще какой способ под линь ? |
|||
|
||||
| maint |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 12.5.2008 Репутация: нет Всего: 2 |
Это один адрес, первый в списке. Надо перебрать все. Для сведения, комп может иметь много ip адресов, отсюда и список. На что и указывает имя переменной Это сообщение отредактировал(а) maint - 21.3.2011, 17:23 |
|||
|
||||
| cupper |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
как глупая программа узнает какой же ей ip выбрать из этого списка ? Добавлено через 12 минут и 53 секунды судя по многим десяткам облазанных форумов и наших и забугорных сего способа нет кроме как получать список все ip Есть способ
но тоже не катит, так как здесь можно/нужно указать адрес какого интерфейса получить, опять таки перебирать, опять таки как узнать какой ip выбрать :( Это сообщение отредактировал(а) cupper - 21.3.2011, 17:24 |
||||||||
|
|||||||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
в теории можно пойти в лоб. т.е. в данные момент я при отправке данных записываю ip отправителя как данное. Можно же попробывать извлекать ip непосредственно на получателе из полученного пакета. Вопрос в том есть ли в asio средства для этого... переходить с asio это... не это не катит.
|
|||
|
||||
| maint |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 12.5.2008 Репутация: нет Всего: 2 |
не правилен сам подход. Надо свыкнуться с мыслью, что у компа более чем один ip. И все станет на свои места. Можно отбрасывать 127.0.0.X адреса, что бы уменьшить список. 127 и.д это loopback адреса. Они будут, даже если не будет сетевой
|
|||
|
||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
уху, и пакет при отправке уходит сразу со всех ip во все подсети ? Яж говорю мне нужен ip с которого был отправлен пакет, согласен на отправителе это получить... кхм... очень сложно (как пример нужно обрабатывать ip куда отправляем с таблицами маршрутизации... что бы узнать в какую сеть и с какого интерфейса, но это абсурд). А вот на получателе уже куда более реально получить именно тот ip с которого был отправлен пакет, и не важно какой это пакет. Да я понимаю что если отправитель находится на каким либо шлюзом, проксей и прочем то ip будет уже внешний. Меня это устраивает. Вопрос теперь в том как сей ip вытащить средствами asio. |
|||
|
||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
мать его :( |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |