szybkie wykrywanie hostów w sieci lokalnej

0

potrzebuję zrobić szybkie wykrywanie komputerów dostępnych w sieci. pingowanie po kolei wszystkich adresów dostępnych w danej sieci odpada, trwa zbyt długo nawet w przypadku 256 adresów (klasa C). wpadłem na pomysł, żeby pingować w wielu wątkach naraz - skraca to czas sprawdzania sieci, i dla klasy C jest ok (około sekundy), jednak dla 64k puli adresowej trwa już kilka minut - to za długo.
kombinuję z wysyłaniem danych na adres broadcast, jednak w mojej sieci na pinga na 192,168.0.255 odpowiada tylko jeden komputer (.0.4), a powinny odpowiedzieć dwa. nie wiem, czy to specyfika tylko mojej sieci, czy może tak się po prostu nie da?
tak więc problem wygląda tak: jak szybko sprawdzić, jakie hosty istnieją w sieci, albo jak odebrać odpowiedzi na broadcast od wszystkich komputerów/urządzeń?

0

Jaką masz maskę? Pamiętaj, że broadcast jest nieroutowalny.

0

klasa C (255.255.255.0) oraz klasa B (255.255.0.0)

w sumie załatwiłem to pingiem, sprawdzenie wszystkich adresów z klasy B zajmuje "tylko" 10 minut - jednak jak na mój gust jest to o 99% za długo. więc problem zostaje otwarty.

a co do nierutowalności broadcasta - mniejsza z tym, zakładamy, że komputery są spięte poprzez switch, a broadcastem zarzuca serwer, do którego podpięty jest switch.

0

Hmm ja do tego sie inaczej zabrałem.
W WinAPI jest funkcja funkcja NetServerEnum, którą możesz na początek uzyskać listę grup roboczych / domen, a później według tego listę komputerów. Dodatkowy możesz dowiedzieć się np. pod jakim jest systemem itp.
Z czasem działani jest różnie, może to zając < sekundy, albo ponad 10 sekund, zależnie czy jest dużo grup roboczych, pod jakim system itd.
Dodatkową wadą jest to, że NetServerEnum działa tyko NT, możesz użyć zamiast tego WNetEnumResource, działa pięknie pod 9x, ale pod NT już zdecydowanie wolniej :(

Musisz ściągnąc unit lmserver, jakby co to dysponuje kodem do wyodrębniania listy komputerów, grup roboczych, później wg. tego adresu ip i mac.

0
Cool_Programming napisał(a)

W WinAPI jest funkcja funkcja NetServerEnum, którą możesz na początek uzyskać listę grup roboczych / domen, a później według tego listę komputerów. Dodatkowy możesz dowiedzieć się np. pod jakim jest systemem itp.
Z czasem działani jest różnie, może to zając < sekundy, albo ponad 10 sekund

Brzmi super. wieczorkiem się temu przyjrzę :-)

// dopisane
nie kumam - to co zwraca ta funkcja to dane komputerów dla ich nazw/IP - a ja potrzebuję właśnie ich IP. hmm.. chyba jeszcze nad tym będę musiał posiedzieć :/

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