socket, interface?
От: sercher Украина  
Дата: 13.10.03 09:15
Оценка:
Здравствуйте!

Работая на уровне сокетов можно ли узнать с какого интерфейся пришёл пакет, и можно ли послать пакет на конкретный интерфейс?
Re: socket, interface?
От: aik Австралия  
Дата: 13.10.03 10:32
Оценка:
Здравствуйте, sercher, Вы писали:

S> Работая на уровне сокетов можно ли узнать с какого интерфейся пришёл пакет, и можно ли послать пакет на конкретный интерфейс?


странный вопрос. для udp тебе это говорят в самой функции recvfrom, а в tcp пакеты приходят оттуда куда ты коннектился функцией connect. или ты что то другое спрашивал?
Re[2]: socket, interface?
От: sercher Украина  
Дата: 13.10.03 11:00
Оценка:
aik>странный вопрос. для udp тебе это говорят в самой функции recvfrom, а в tcp пакеты приходят оттуда куда ты коннектился функцией connect. или ты что то другое спрашивал?

recvfrom() скажет с какого IP адреса пришёл пакет, а не интерфейс. А мне надо именно интерфейс, его имя. Компьютер может и не иметь IP адрес и рассылать широковещательные пакеты.
Re[3]: socket, interface?
От: aik Австралия  
Дата: 13.10.03 12:15
Оценка:
Здравствуйте, sercher, Вы писали:

aik>>странный вопрос. для udp тебе это говорят в самой функции recvfrom, а в tcp пакеты приходят оттуда куда ты коннектился функцией connect. или ты что то другое спрашивал?


S> recvfrom() скажет с какого IP адреса пришёл пакет, а не интерфейс. А мне надо именно интерфейс, его имя. Компьютер может и не иметь IP адрес и рассылать широковещательные пакеты.


что у тебя за сокет, и что за пакеты? netbios что ли?
Re[3]: socket, interface?
От: Vamp Россия  
Дата: 13.10.03 12:32
Оценка:
S> ...<skip>... Компьютер может и не иметь IP адрес и рассылать широковещательные пакеты.
А можно отсюда поподробнее? Как отослать пакет с компьютера, не имеющего IP адреса?
Да здравствует мыло душистое и веревка пушистая.
Re[4]: socket, interface?
От: sercher Украина  
Дата: 13.10.03 12:41
Оценка:
aik>что у тебя за сокет, и что за пакеты? netbios что ли?

UDP
Re[4]: socket, interface?
От: sercher Украина  
Дата: 13.10.03 12:55
Оценка:
Здравствуйте, Vamp, Вы писали:


S>> ...<skip>... Компьютер может и не иметь IP адрес и рассылать широковещательные пакеты.

V>А можно отсюда поподробнее? Как отослать пакет с компьютера, не имеющего IP адреса?

sendto();

См. UDP сокеты, броадкастинг. Например здесь
Автор: _ssss
Дата: 11.07.02
Re[5]: socket, interface?
От: Vamp Россия  
Дата: 13.10.03 13:04
Оценка:
Мне случалось по UDP-сокетам обучение проводить... И никогда не слышал, что можно отправить сообщение с компьютера без IP-адреса. Никогда.
Более того, считается, что сокет должен быть забинден — в противном случае, он забиндится автоматически.

Note If a socket is opened, a setsockopt call is made, and then a sendto call is made, Windows Sockets performs an implicit bind function call.

Но Вы, безусловно, открыли мне глаза.
Да здравствует мыло душистое и веревка пушистая.
Re[6]: socket, interface?
От: sercher Украина  
Дата: 13.10.03 13:09
Оценка:
V>Но Вы, безусловно, открыли мне глаза.

А вам не приходилось разве слышать о протоколе DHCP? Это когда IP адрес и другие сетевые настройки клиент получает от сервера динамически? Как транспортный протокол там используется UDP и броадкаст запрос.
Re[7]: socket, interface?
От: Vamp Россия  
Дата: 13.10.03 13:33
Оценка:
S> ... Как транспортный протокол там используется UDP и броадкаст запрос.
И тем не менее, дяже на этом этапе IP-адрес у компьютера есть. Он просто заполнен нулями. Нельзя отправить запрос с компьютера без IP-адреса — поле в пакете же есть. Другое дело, что такой IP-адрес не может использоваться в качестве адресата. Поэтому сервер отправляет броадкастовый ответ.
Да здравствует мыло душистое и веревка пушистая.
Re[8]: socket, interface?
От: sercher Украина  
Дата: 13.10.03 13:54
Оценка:
Вопрос стоял так: можно ли отправить IP пакет с компьютера, не имеющего IP адреса, т.е. не отвечающего на ARP запросы.
Я ответил — да, можно.
А с форматом ethernet пакета я знаком, а также с IP и UDP. Только я не понимаю причём тут это. Можно и MAC адрес источника не указывать, а пакет всё равно дойдёт.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.