LINUX.ORG.RU

Получение удаленного мак-адреса

 


0

2

Существует ли возможность в си получить mac-адрес сервера к которому подключен сокет? В плане что у меня нет никакой инфы, как и к чему подключен сокет (eth0/eth1/etc) кроме как самого сокета.

Гуглежка привела к заключению что можно узнать только мак ближайшего роутера и то, если знать через какой интерфейс было подключение.

Что подскажете?

★★★★★

Существует ли возможность в си получить mac-адрес сервера к которому подключен сокет?

В общем случае нет. Ни в Си, ни вообще.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)

Существует ли возможность в си получить mac-адрес

вопрос задан неверно.
примерный вариант верно заданного вопроса:

Предусматривает ли соответствующий протокол передачу определенной информации в определенных условиях.

и тэги еще надо добавить: памела_андерсон, экология, будулай.

mos ★★☆☆☆
()
Ответ на: комментарий от PPP328

Без разницы. Ты можешь узнать только маки компов с которыми можно связаться непосредственно, без роутера (включая сам роутер). Всё что дальше ты не увидишь.

no-such-file ★★★★★
()

Конечно можно! Ты подключаешься, а сервер сам тебе присылает свой MAC-адрес. И так ты его получил :)

I-Love-Microsoft ★★★★★
()

Посмотри исходники nmap. Он как-то узнаёт mac адреса в локальных и некоторых местных сетях

mittorn ★★★★★
()

Так как ты не обрисовал среду, то есть конечно способ - если у тебя контролируемая тобой сеть управляемых коммутаторов, то через SNMP+LLDP ты вполне можешь такую информацию получить. Но видимо у тебя интернет, тогда никак.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Я связываюсь с устройством в той же локальной сети, но мы сидим через свитч + роутер. IP вида 192.168.ХХ.ХХХ

PPP328 ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Нужно это потому что в сети с десяток устройств с двумя сетевыми картами. И есть подозрение что DHCP раздает им адреса которые должны иметь другие устройства. Из-за чего при включении идет коннект не к А,Б,Ц, а к А,А,Ц. Пытаемся расследовать, для чего я хочу выводить мак адреса при подключении.

PPP328 ★★★★★
() автор топика
Ответ на: комментарий от PPP328

Пришли модели свитча и роутера. Если сервера подключены в порты роутера с поддержкой LLDP, значит твоя задача решена. На сервере нужно поднимать конечно lldpd (LLDP/CDP/EDP).

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Сервер - железка с закрытыми прошивками без возможности что-то поменять. Там даже не линукс а RT.

PPP328 ★★★★★
() автор топика

Если в одной сети, то ioctl() с SIOCGARP смотри.

Удаленных, есессно, тебе это не даст.

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Под SNMP надо другой коннект открывать. Тем паче UDP. А если сделать новый коннект - то все нормально. Проблема только с текущим коннектом TCP сразу после включения устройства. Пытаемся как-то диагностировать.

PPP328 ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Там через свитч+циску, так что се-ля-ви(

PPP328 ★★★★★
() автор топика

или socket packet man packet или raw man raw. Там приходит пакет вместе с ether маком. Ещё ipproto установи нужное значение ( в socket ).

u0atgKIRznY5
()
Ответ на: комментарий от u0atgKIRznY5

Там приходит пакет вместе с ether маком

мы сидим через свитч + роутер

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от PPP328

Нужно это потому что в сети с десяток устройств с двумя сетевыми картами. И есть подозрение что DHCP раздает им адреса которые должны иметь другие устройства. Из-за чего при включении идет коннект не к А,Б,Ц, а к А,А,Ц. Пытаемся расследовать, для чего я хочу выводить мак адреса при подключении.

в чём проблема ? посмотрите журнал dhcp, сравните с паспортами железок. :-)

на произвольном компе можно конечно поймать все MAC которым IP назначаются через dhcp, но придётся долго-долго мониторить сеть и вылавливать+разбирать все ARP запросы/ответы.

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

Журнал dhcp в циске, циска не наша, доступа нет.

PPP328 ★★★★★
() автор топика
2 февраля 2018 г.
Ответ на: комментарий от u0atgKIRznY5

Чтоб не создавать новую тему, попробую спросить тут: Имеется сеть (физически - тонна управляемых свитчей DES-12XX и немного неуправляемых). Свитчи имеют адреса 192.168.0.0/24, а устройства которые подключены к ним 192.168.101.0/24. Где-то в сети (никто не знает где именно) торчит NAS и известен его IP. Как бы определить к какому свичу поделючен этот NAS? Вернее даже ближайший к NAS'у управляемый свитч. Тогда я мог бы сократить район поиска с 3 офисов по несколько этажей до 1 офиса и 1 этажа :-) И еще один момент: пароли от DES'ов потеряны предыдущими поколениями админов, сами свитчи установлены так, что не подлезешь не разворотив всё вокруг. Известны только IP-адреса свитчей и номер офиса\этаж где установлены, так что сбросить пароль и посмотреть что-то в WEB-интерфейсе - это врядли...

MrRitm
()
Ответ на: комментарий от MrRitm

Как бы определить к какому свичу поделючен этот NAS?

Да можно, можно либо самому написать, либо воспользоваться программой. Например traceroute или mtr. Попробуй mtr [адрес]. Так ты увидишь через какой свитч подключен.

u0atgKIRznY5
()

Существует ли возможность в си получить mac-адрес сервера

Если он в другой сети (то есть через роутер от тебя), то нет, вообще(ну если только не модифицировать функционал сервиса специально для этого). В локальной сети в теории можно попробовать прогуглить как получить доступ к arp-table, для извлечения мака по ip.

Dudraug ★★★★★
()

Гуглежка привела к заключению что можно узнать только мак ближайшего роутера и то, если знать через какой интерфейс было подключение.

А, то есть таки в другой сети. То ответ нет, ты вообще представляешь стэк работы сетевых протоколов? Ты должен понимать, что мак твоего сервера знает ТОЛЬКО ближайший к нему роутер (ну и компы в его локалке).

Dudraug ★★★★★
()
Ответ на: комментарий от no-such-file

Всё что дальше ты не увидишь.

Можно на сервере добавить обработку запроса (естественно придется ее запрограммировать в приложение сервера) на получение его мака. Только как мне кажется инфа о маке компа вне локалки бессмысленная и бесполезная в любом случае.

Dudraug ★★★★★
()
Ответ на: комментарий от PPP328

Я связываюсь с устройством в той же локальной сети

но мы сидим через свитч + роутер.

Ничего не понял.

192.168.ХХ.ХХХ

Локальные адреса можешь не скрывать, они нафиг никому не нужны, никто тебя не поломает по ним=) Напиши ip сервера, ip клиента и маску подсети у обоих.

Dudraug ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.