Официальный форум СВД Встраиваемые Системы
26 Апрель, 2024, 17:19:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: MAC адрес  (Прочитано 4129 раз)
Naut
Пользователь

Сообщений: 20


« : 10 Декабрь, 2009, 17:54:02 »

Возможно ли получить в программу "родной" MAC адрес Ethernet карты?
При запуске драйвера с указанием подставляемого MAC адреса (-M ...) возвращается именно данный MAC, а интересует  получение MAC адреса, записанного в карте.
Возможно ли это и в QNX4 и в QNX6?
Записан
Андрей Сеньков
Администратор
Ветеран

Сообщений: 339



WWW
« Ответ #1 : 10 Декабрь, 2009, 18:18:31 »

Возможно ли получить в программу "родной" MAC адрес Ethernet карты?
При запуске драйвера с указанием подставляемого MAC адреса (-M ...) возвращается именно данный MAC, а интересует  получение MAC адреса, записанного в карте.
Возможно ли это и в QNX4 и в QNX6?

В общем случае, процедура получения физического МАС адреса заключается в формировании запроса к драйверу, как это происходит в утилитах netinfo (QNX4) и nicinfo (QNX6). Детали же могут отличаться в зависимости от драйвера и версии ОС. Для более детального ответа, сообщите дополнительную информацию:
1) Версию драйвера и ОС
2) Каким образом Ваша программа получает назначенный MAC адрес?

Записан

Naut
Пользователь

Сообщений: 20


« Ответ #2 : 11 Декабрь, 2009, 10:55:02 »

Я получаю MAC адрес, используя запрос к сетевому администратору _NET_RNODEMAP
ОС QNX4.25
Меня интересует механизм, независимый от драйвера конкретной карты Ethernet.
В принципе есть такой механизм или зависит от конкретного драйвера?
Записан
Naut
Пользователь

Сообщений: 20


« Ответ #3 : 11 Декабрь, 2009, 11:16:39 »

В частности для Net.tulip, при вызове netinfo -Lx показывается и физический MAC и назначенный из командной строки при запуске драйвера
Записан
Василий Дмитриев
Ветеран

Сообщений: 364



« Ответ #4 : 11 Декабрь, 2009, 12:06:39 »

Единственный механизм независимый от драйвера(imho) - непосредственная работа с портами ввода-вывода карты:)
Зачем повторять велосипеды разных моделей, уже реализованные в драйверах?
Записан

Санкции! Запрещаю Бараку Обаме и членам конгресса США читать мои посты!
Андрей Сеньков
Администратор
Ветеран

Сообщений: 339



WWW
« Ответ #5 : 11 Декабрь, 2009, 12:56:35 »

Я получаю MAC адрес, используя запрос к сетевому администратору _NET_RNODEMAP
ОС QNX4.25
Меня интересует механизм, независимый от драйвера конкретной карты Ethernet.
В принципе есть такой механизм или зависит от конкретного драйвера?

Можно сказать, что такой механизм и предоставляет утилита netinfo. Для абсолютного числа драйверов она покажет физический MAC-адрес устройства. Другое дело, что используемые netinfo структуры данных относятся к закрытым исходным текстам.
Решением является разбор информации, выводимой netinfo, или сохраненной в файл или полученной через программный канал с использованием функции popen.
Записан

Naut
Пользователь

Сообщений: 20


« Ответ #6 : 11 Декабрь, 2009, 13:10:42 »

Это понятно, в некоторых случаях данными механизмами получения нужной информации и пользуюсь .
Записан
Василий Дмитриев
Ветеран

Сообщений: 364



« Ответ #7 : 13 Декабрь, 2009, 19:17:55 »

Другое дело, что используемые netinfo структуры данных относятся к закрытым исходным текстам.
Ой ли:)? Как минимум этот механизм показан в экзамплях netraw из usr/free/. Так что дружно берем экзампль if_info и юзаем его.
« Последнее редактирование: 13 Декабрь, 2009, 19:34:38 от Василий Дмитриев » Записан

Санкции! Запрещаю Бараку Обаме и членам конгресса США читать мои посты!
Naut
Пользователь

Сообщений: 20


« Ответ #8 : 14 Декабрь, 2009, 12:27:23 »

Так по примеру if_info и делается, только дело в том, что при запуске драйвера с назначенным MAC (-m ...) в структуре находится именно назначенный MAC, а не физический
Записан
Андрей Сеньков
Администратор
Ветеран

Сообщений: 339



WWW
« Ответ #9 : 14 Декабрь, 2009, 12:39:34 »

Другое дело, что используемые netinfo структуры данных относятся к закрытым исходным текстам.
Ой ли:)? Как минимум этот механизм показан в экзамплях netraw из usr/free/. Так что дружно берем экзампль if_info и юзаем его.

Василий, увы, но для обсуждаемого случая if_info, к сожалению, не подходит.
Если драйвер переопределяет MAC, то if_info покажет именно назначенный, а не физический - прошитый в адаптере. Дело в том, что if_info опрашивает только Net, а netinfo еще и драйвер. Net оперирует и хранит информацию только об одном действующем MAC-адресе, который может отличаться от физического.  
« Последнее редактирование: 14 Декабрь, 2009, 14:57:47 от Андрей Сеньков » Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2024 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 28 Март, 2024, 15:32:36