LinuxForum.Fans
Тема

Функции работы с сетью с/с++

Автор: marikk 9 сообщений 2421 просмотров
#329180

Всем привет. Подскажите пожалуйста. Есть ли готовая функция в с/с++ или Qt, которая возвращает mac адрес по ip ?

#329211

для локальных интерфейсов в Qt есть QNetworkInterface::hardwareAddress().
на си отдельного низкоуровневого примитива, вроде, нет и способ это сделать системно-зависим.

для удалённых - хз как...

#329222
-=Serj=- написал:
ifconfig вроде умеет mac сообщать, может из его исходников можно позаимствовать, если на Си?..

Получить свой mac не особо трудно. Хотелось бы узнать как получить mac удаленной машины ?

#329224

Может поковырять arping?

#329228
"-=Serj=-⇓" написал:
Может поковырять arping?

Эта утилита работает по принципу ping. Создается соккет принимающий arp reply и соккет отправляющий arp Request. Довольно громоздкая конструкция, но наверно это единственный выход. Спасибо буду рыть в этом направлении.

#329273
"marikk⇓" написал:
Эта утилита работает по принципу ping. Создается соккет принимающий arp reply и соккет отправляющий arp Request. Довольно громоздкая конструкция, но наверно это единственный выход. Спасибо буду рыть в этом направлении.

для пакетного сокета нужен root...
как «правильно» запросить ресолв адреса я не скажу, но можно просто попытаться подключиться на любой порт, а потом достать данные откуда-то из /proc/net/arp или ещё-откуда...

#329283

для пакетного сокета нужен root...

Владелец root и право выполнения c uid

но можно просто попытаться подключиться на любой порт, а потом достать данные откуда-то из /proc/net/arp

пожалуй это намного проще. Завтра попробую так сделать

#329308

а ещё man 7 arp почитать стоит... там тоже есть пара интересных ioctl'ов...

Войдите или зарегистрируйтесь, чтобы ответить.