Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как выбрать исходящий IP адрес? 
:(
    Опции темы
Dims
Дата 7.1.2009, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 0
Всего: 11



Если у меня сетевая карта имеет несколько IP адресов, то как мне выбрать, через какой из них осуществляется WebRequest?
PM MAIL   Вверх
Partizan
Дата 7.1.2009, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



Dims, как сетевая карта в один момент времени может иметь несколько IP адресов????


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Dobermann
Дата 7.1.2009, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: 1
Всего: 0



Цитата(Dims @  7.1.2009,  17:07 Найти цитируемый пост)
Если у меня сетевая карта имеет несколько IP адресов, то как мне выбрать, через какой из них осуществляется WebRequest?

Т.е. нужно программно задавать разные ip-адреса одной сетевой карте? 
Не совсем понятен вопрос...
PM   Вверх
Dims
Дата 7.1.2009, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 0
Всего: 11



Вы можете зайти в настройки своей сети (под Windows) и убедиться, что много IP адресов на одной карте -- это штатная функция. Адреса должны быть статические. Кажется, это называется multihomed. Linux, естественно, тоже позволяет присваивать одной карте несколько адресов.

Так вот, если УЖЕ настроено несколько IP адресов на одной карте, то как выбрать из программы, через какой из настроенных адресов происходит обращение?
PM MAIL   Вверх
rooks
Дата 7.1.2009, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 28.9.2008
Где: Минск

Репутация: нет
Всего: 9



Есть такой класс 
Код
System.Net.NetworkInformation.NetworkInterface 
в котором лежит вся инфа о сетевых интерфейсах. Получить список можно так: 
Код
NetworkInterface.GetAllNetworkInterfaces();
Сетевая карта обычно первая в списке(по крайней мере у меня smile ). Метод GetIPProperties() возвращает кучу инфы по айпишникам: днс, шлюзы, мультикасты и т.д. Вам видимо надо GetIPProperties().UnicastAddresses.
PM MAIL ICQ   Вверх
avvo
Дата 8.1.2009, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 11.9.2007

Репутация: 1
Всего: 4



Socket socket = new Socket();  
socket.bind(new InetSocketAddress("1.1.1.1",12345));
socket.connect(new InetSocketAddress("2.2.2.2", 12345));

главное, чтобы от 1.1.1.1 (локальный клиент) существовал путь до 2.2.2.2 (удаленный сервер), включая локальную роутинговую таблицу.
PM MAIL   Вверх
PashaPash
Дата 8.1.2009, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



Dims, судя по рефлектору - никак. HttpWebRequest не вызывает bind перед connect.


--------------------
PM MAIL WWW   Вверх
nmn
Дата 8.1.2009, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: 1
Всего: 1



выбор интерфейса то бишь исходящего ip определяется по таблице маршрутизации, в windows "route print" чтобы посмотреть таблицу
PM Skype   Вверх
PashaPash
Дата 8.1.2009, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



nmn, ага, а на один интерфейс может быть назначено несколько IP-адресов из одной подсети. И для выбора конкретного клиентского адреса/порта нужно вручную указать его вызовом Socket.Bind. Никакие route print тут не помогут.


--------------------
PM MAIL WWW   Вверх
Dims
Дата 9.1.2009, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 0
Всего: 11



Хорошо, ну а как, хотя бы, выбрать исходящий порт?

И если опять никак, то какой порт выбирается автоматически? Каждый раз новый на новый реквест? Или иногда старый?
PM MAIL   Вверх
PashaPash
Дата 9.1.2009, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



Dims, никак, выбирается по принципу "available port number between 1024 and 5000."



--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0878 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.