Skaner adresow IPv6 w sieci lokalnej, linux, C++ 11

0

Witam

Chciałbym napisać program który wykrylby i podał mi adresy IPv6 urządzeń podłączonych w lokalnej sieci w C++. Biblioteki muszą działać w środowisku linux. Qt tez nie moze zostać użyty. Najprawdopodobniej można ożyć biblioteki net-snmp. Implementacja powinna być w C++ a nie program w linii komend.
Googlowalem od dłuższego czasu i czytałem dokumentacje biblioteki ale z tematyki sieci nie mam spalanie doświadczenia.

Może ktoś ma doświadczenie z czymś podobnym i byłby w stanie rodzic lub poratować kodem?
Będę wdzięczny za pomoc lub sugestie.

0

Generalnie wykrywanie hostów polega na niczym innym jak na próbie połączenia się z takim hostem, wysyłasz mu jakieś ICMP echo (ping) albo próbujesz połączyć się po TCP na jakieś standardowe porty (22, 23, 80). SNMP pasuje tu jak pieść do oka.
Oczywiście dla IPv6 jest to raczej słabe ze względu na liczbę hostów które trzeba by przeiterować...

Alternatywą mogłby być sniffowanie ruchu sieciowego i analizowanie ARP albo w ogóle pobranie tablic ARP ze switchy w tej twojej sieci (tutaj akurat SNMP mogłoby faktycznie mieć sens) i pobieranie tablic routingu z routerów w tej sieci dla hostów które są wpięte bezpośrednio do routera (znów, może a pomocą SNMP). To oczywiście wymaga skonfigurowania urządzeń sieciowych w odpowiedni sposób.

Napisz może co chcesz konkretnie osiągnąć, bo przeczuwam tutaj http://xyproblem.info/

0

Dziękuje za odpowiedz.
Jednostka podobna do raspbery(tylko przemyslowa) z okrojona wersja linuxa ma wyjscia lan, do tego lana mozna podpiac np wyswietlacz przemyslowy tez z podobna jednostka(display ma adres ipv6). W momencie jest mechanizm ktory uruchamia w pewnych sytuacjach skaner IP. Skaner ten ma wykryc podpiete lanem urzadzenia i zebrac ich dane jak: ip, depth(czy za switchami), type(np wyswietlacz), name, replay(czy odpowiada na ping). Majac te dane moge wybrac urzadzenia typu display, i wziasc jego adres ip i wtedy polaczyc sie przez ssh i wyslac mu dany plik.
Podobna implementacja innego urzadzenia używała rozwiazania z framerowkiem qt i tam jest network management, dla tego urzadzenia nie ma takiej mozliwosc, bez qt.
Z tego co przegladalem to dzialalo to na zasadzie skanera MIB z bilioteka net-snmp, przegladam dokumentacje tej biblioteki i kod ale nie moge ogarnąć o co dokladnie tam chodzi bo z sieciami nie mialem stycznosci. MIB z tego co czytalem opisuje urzadzenia w sieci, ale wszystkie te opisy sa dosc abstrakcyjne. Myslalem ze ta biblioteka na jakas uproszczona funkcjonalnosc skanera ale z tego co widze to nie do konca.
Chodzi mi o to jak taki skaner MIB powinien dzialać, jak powinna wygladac implementacja i czy na pewno jest to dobra droga.
Bede wdzieczny za jakakolwiek rade.

1 użytkowników online, w tym zalogowanych: 0, gości: 1